Oracle PL/SQL如何动态调用存储过程 收藏?

今天一同事问我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>

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/rainbow8966/archive/2009/08/18/4458818.aspx