今天一同事问我Oracle PL/SQL如何动态调用存储过程,我觉得应该没有问题,刚试了一下OK,主要是用execute immediate 语法,注意using里指定in和out参数,具体测试示例如下:
create or replace function FNC_TEST2(iP1 INTEGER,iP2 integer) return integer is
Result integer;
begin
return(iP1*iP2);
end FNC_TEST2;
create or replace function FNC_TEST1 return integer is
Result integer;
vSQL varchar2(200);
begin
vSQL := 'BEGIN :return:=FNC_TEST2(:p1,:p2); END;';
execute immediate vSQL
using out Result,2, 3;
return(Result);
end FNC_TEST1;
SQL> select fnc_test1() from dual;
FNC_TEST1()
-----------
6
SQL>
本文介绍了一种在Oracle PL/SQL中动态调用存储过程的方法,通过使用execute immediate语法配合using子句来指定输入和输出参数,实现了灵活的动态调用功能。
3003

被折叠的 条评论
为什么被折叠?



