动态SQL执行存储过程里的内嵌函数报错??

tobey_cheng 2008-09-12 11:11:47
create or replace procedure cp_test_function(
o_RtnVar in OUT VARCHAR2
)
as
v_sql VARCHAR2(200);
function getdisp
(form varchar2)
return varchar2
as
begin
if form='1' then
RETURN('1');
else
return('0');
end if;

end getdisp;

BEGIN
v_sql := 'select getdisp(''1'') from dual';
execute immediate v_sql;
o_RtnVar := '成功';
end cp_test_function;


执行上面存储过程报错,说找不到函数getdisp。
但我若不是动态SQL,就又可以。而且我又不想把函数建在外面。
请问有方法实现吗?
...全文
101 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dshimin 2008-09-17
  • 打赏
  • 举报
回复
建意分解成小模块,也许是你的语法有问题!
vc555 2008-09-12
  • 打赏
  • 举报
回复
有这种语法?在存储过程里面建函数?
还是建包吧。

17,086

社区成员

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

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