动态sql问题,高分求教!!!

xjysky 2002-12-31 03:45:16
CREATE OR REPLACE procedure test
as
cSql varchar2(1000);
begin
cSql:='
declare cLsh varchar2(10);
begin
cLsh:=''aa'';
end;';
EXECUTE IMMEDIATE cSql;
end test;

**************************************
以上是一个测试动态sql的存储过程,运行时报错,为什么啊?
不会是动态sql里面不能用declare..begin..end吧???
...全文
18 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
beckhambobo 2002-12-31
  • 打赏
  • 举报
回复
呵呵 楼主以后自已细心研究后再发问题,以免大家一同担忧!
jlandzpa 2002-12-31
  • 打赏
  • 举报
回复
16:03:32 jlanzpa817>CREATE OR REPLACE procedure test1
16:03:41 2 as
16:03:41 3 cSql varchar2(1000);
16:03:41 4 begin
16:03:41 5 cSql:='declare cLsh varchar2(10);begin cLsh:=''aa''; end;';
16:03:41 6 EXECUTE IMMEDIATE cSql;
16:03:41 7 end test1
16:03:41 8 ;
16:03:42 9 /
已用时间: 00: 00: 00.20
16:03:44 jlanzpa817>exec test1
已用时间: 00: 00: 00.00
16:03:47 jlanzpa817>
xjysky 2002-12-31
  • 打赏
  • 举报
回复
多谢各位,我再编译一次该文件后居然没事了。
beckhambobo 2002-12-31
  • 打赏
  • 举报
回复
报什么错,把它贴出来吧!
beckhambobo 2002-12-31
  • 打赏
  • 举报
回复
编译成功,执行也成功(已测试)
xjysky 2002-12-31
  • 打赏
  • 举报
回复
回复bobfang(匆匆过客):
我用的是oracle personal 8.17,应该没问题吧。
beckhambobo 2002-12-31
  • 打赏
  • 举报
回复
sorry,看漏眼
beckhambobo 2002-12-31
  • 打赏
  • 举报
回复
cLsh还没定义,当然有错

不用换行符也行。
bobfang 2002-12-31
  • 打赏
  • 举报
回复
你oracle的版本是多少,我用8.1.6执行你的脚本没有问题。
jiezhi 2002-12-31
  • 打赏
  • 举报
回复
例子:
v_sql:='select ... from '||
'table_name where ... '||
' and ... ';
jiezhi 2002-12-31
  • 打赏
  • 举报
回复
字符串换行需要加连接符 ||
xjysky 2002-12-31
  • 打赏
  • 举报
回复
那里多啊?
developer2002 2002-12-31
  • 打赏
  • 举报
回复
多了一个分号
developer2002 2002-12-31
  • 打赏
  • 举报
回复
抱歉,漏看了一行!
developer2002 2002-12-31
  • 打赏
  • 举报
回复
光定义一个字符串,就叫动态sql?!还怨oralce报错?!

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧