ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » Oracle开发 » 动态执行语句

标题: 动态执行语句
离线 lvbomr
中级会员



精华贴数 0
个人空间 0
技术积分 700 (2712)
社区积分 0 (518291)
注册日期 2005-7-17
论坛徽章:1
ITPUB新首页上线纪念徽章     
      

发表于 2008-6-24 14:48 
动态执行语句

用dbms_sql.parse,动态执行如下语句
create materialized view W_MV_STAT_BILL_TEMP1
REFRESH complete ON DEMAND
START WITH SYSDATE NEXT round(SYSDATE+0.5)+1/16
as
select a.extend1,a.make_date,a.description,nvl(a.extend2,0) as extend2
from w_tbl_log a, W_TBL_STAT_SYS_LOG b
where substr(EXTEND1,6,instr(EXTEND1,'<br>')-6)=b.login;


因为含有'<br>',总报错请问如何转换?


只看该作者    顶部
在线/呼叫 jvkojvko
小马哥


精华贴数 1
个人空间 0
技术积分 5600 (235)
社区积分 44528 (17)
注册日期 2007-9-10
论坛徽章:20
祖母绿萤石紫水晶紫水晶红宝石海蓝宝石
紫水晶蓝锆石月度论坛发贴之星金色在线徽章  

发表于 2008-6-24 14:54 
用'''代替'


__________________
马无夜草不肥,人无外财不富。

-------------------------------
长期高价出售奥运章
只看该作者    顶部
离线 visual2006



精华贴数 0
个人空间 0
技术积分 776 (2438)
社区积分 4 (18477)
注册日期 2006-7-23
论坛徽章:1
      
      

发表于 2008-6-24 14:54 
用CHR()


只看该作者    顶部
离线 lvbomr
中级会员



精华贴数 0
个人空间 0
技术积分 700 (2712)
社区积分 0 (518291)
注册日期 2005-7-17
论坛徽章:1
ITPUB新首页上线纪念徽章     
      

发表于 2008-6-24 16:18 
dbms_sql.parse(sql_cursor, 'create materialized view W_MV_STAT_BILL_TEMP1
REFRESH complete ON DEMAND
START WITH SYSDATE NEXT round(SYSDATE+0.5)+1/16
as
select a.extend1,a.make_date,a.description,nvl(a.extend2,0) as extend2
from w_tbl_log a, W_TBL_STAT_SYS_LOG b
where substr(EXTEND1,6,instr(EXTEND1,'''<br>''')-6)=b.login)', dbms_sql.v7);

报如下错误:
PLS-00103: 出现符号 ">"在需要下列之一时:   . ( ) , * @ % & - + / at mod     remainder rem <an exponent (**)> and or || multiset


只看该作者    顶部
在线/呼叫 jvkojvko
小马哥


精华贴数 1
个人空间 0
技术积分 5600 (235)
社区积分 44528 (17)
注册日期 2007-9-10
论坛徽章:20
祖母绿萤石紫水晶紫水晶红宝石海蓝宝石
紫水晶蓝锆石月度论坛发贴之星金色在线徽章  

发表于 2008-6-24 16:20 
那'<','>' 用chr(60)和chr(62)代替掉


__________________
马无夜草不肥,人无外财不富。

-------------------------------
长期高价出售奥运章
只看该作者    顶部
离线 lvbomr
中级会员



精华贴数 0
个人空间 0
技术积分 700 (2712)
社区积分 0 (518291)
注册日期 2005-7-17
论坛徽章:1
ITPUB新首页上线纪念徽章     
      

发表于 2008-6-24 16:46 
dbms_sql.parse(sql_cursor, 'create materialized view W_MV_STAT_BILL_TEMP1
REFRESH complete ON DEMAND
START WITH SYSDATE NEXT round(SYSDATE+0.5)+1/16
as
select a.extend1,a.make_date,a.description,nvl(a.extend2,0) as extend2
from w_tbl_log a, W_TBL_STAT_SYS_LOG b
where substr(EXTEND1,6,instr(EXTEND1,chr(60)||'br'||chr(62))-6)=b.login;
还是报如下错误:
PLS-00103: 出现符号 "BR"在需要下列之一时:   ) , * & | = - + < / > at in     is mod remainder not rem => .. <an exponent (**)>     <> or != or ~= >= <= <> and or like LIKE2_ LIKE4_ LIKEC_     between || multiset member SUBMULTISET_


只看该作者    顶部
在线/呼叫 jvkojvko
小马哥


精华贴数 1
个人空间 0
技术积分 5600 (235)
社区积分 44528 (17)
注册日期 2007-9-10
论坛徽章:20
祖母绿萤石紫水晶紫水晶红宝石海蓝宝石
紫水晶蓝锆石月度论坛发贴之星金色在线徽章  

发表于 2008-6-24 16:53 
try this:substr(EXTEND1,6,instr(EXTEND1,chr(39)||chr(60)||br||chr(62)||chr(39))-6)=


__________________
马无夜草不肥,人无外财不富。

-------------------------------
长期高价出售奥运章
只看该作者    顶部
离线 lvbomr
中级会员



精华贴数 0
个人空间 0
技术积分 700 (2712)
社区积分 0 (518291)
注册日期 2005-7-17
论坛徽章:1
ITPUB新首页上线纪念徽章     
      

发表于 2008-6-24 17:38 
dbms_sql.parse(sql_cursor, 'create materialized view W_MV_STAT_BILL_TEMP1
REFRESH complete ON DEMAND
START WITH SYSDATE NEXT round(SYSDATE+0.5)+1/16
as
select a.extend1,a.make_date,a.description,nvl(a.extend2,0) as extend2
from w_tbl_log a, W_TBL_STAT_SYS_LOG b
where substr(EXTEND1,6,instr(EXTEND1,chr(39)||chr(60)||br||chr(62)||chr(39))-6)=b.login', dbms_sql.v7);
还是报错。


只看该作者    顶部
离线 lvbomr
中级会员



精华贴数 0
个人空间 0
技术积分 700 (2712)
社区积分 0 (518291)
注册日期 2005-7-17
论坛徽章:1
ITPUB新首页上线纪念徽章     
      

发表于 2008-6-25 09:06 



只看该作者    顶部
在线/呼叫 jvkojvko
小马哥


精华贴数 1
个人空间 0
技术积分 5600 (235)
社区积分 44528 (17)
注册日期 2007-9-10
论坛徽章:20
祖母绿萤石紫水晶紫水晶红宝石海蓝宝石
紫水晶蓝锆石月度论坛发贴之星金色在线徽章  

发表于 2008-6-25 17:13 
报什么错,最好先把动态语句赋值给一变量,把错误贴出来


__________________
马无夜草不肥,人无外财不富。

-------------------------------
长期高价出售奥运章
只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问