动态调用问题! ̄! ̄

chenranlw 2006-07-10 10:07:01
create or replace procedure s_trans_exec_plsql(plsqlName in varchar2 ) is

sss varchar2(1000) ;
begin
null;

sss:='call '|| plsqlName||'()';
dbms_output.put_line(sss);
EXECUTE IMMEDIATE sss;

end s_trans_exec_plsql;


出现丢失表达式,是怎么回事呢! ̄
...全文
146 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
czbbbs 2006-07-10
  • 打赏
  • 举报
回复
sss:='call '|| plsqlName||'()';
改成试试:
===
sss:='execute '|| plsqlName||'()';

chenranlw 2006-07-10
  • 打赏
  • 举报
回复
我的也能编译通过,就是单步调试的时候会出现‘缺少表达式’呢! ̄
chenranlw 2006-07-10
  • 打赏
  • 举报
回复
如果去掉的话就会出现缺少select 关键字呢!@ ̄
龙翔飞雪 2006-07-10
  • 打赏
  • 举报
回复
sorry,一开始看错你意思了...
这样写,我通过了
存储过程:
create or replace procedure ex_dsql_call(pProcedureName varchar2) is
sqlStatement varchar2(200);
begin
sqlStatement:='call '||pProcedureName || '()';
execute immediate sqlStatement;
end;

测试脚本:
-- Created on 2006-7-10 by DREAM
declare
-- Local variables here
i integer;
begin
-- Test statements here
ex_hello;

ex_dsql_call('ex_hello');
end;
龙翔飞雪 2006-07-10
  • 打赏
  • 举报
回复
存储过程里调用存储过程, 不用加call关键字,

去掉试试

17,090

社区成员

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

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