您的位置:首页 > 其它

动态调用带out参数的存储过程

2009-12-07 23:13 253 查看
试了将近1个小时,早知道多baidu一下了,死在这个using in/out
没加上,乃乃的。



SQL> drop table emp;

表已丢弃。

SQL> create table emp(A varchar2(10),B varchar2(10),C varchar2(10));

表已创建。

SQL> insert into emp values('1','1','1');

已创建 1 行。

SQL> insert into emp values('2','2','2');

已创建 1 行。

SQL> insert into emp values('3','3','3');

已创建 1 行。

SQL>

SQL> create or replace procedure p_test_dym(

2 i_A in varchar2,

3 o_B out varchar2

4 )

5 as

6 begin

7 select B into o_B from emp where emp.A = i_A;

8 end;

9 /

过程已创建。

SQL>

SQL> create or replace procedure p_call_dym(

2 v_proc in varchar2,

3 v_param in varchar2

4 )

5 as

6 v_2 emp.B%TYPE;

7 begin

8 execute immediate 'call '||v_proc||'(:1,:2)' using in

v_param,out

v_2;

9 dbms_output.put_line(v_2);

10 end;

11 /

过程已创建。

SQL>

SQL> exec p_call_dym('p_test_dym','2');

2

PL/SQL 过程已成功完成。

SQL>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: