我现在有一张表记录了存储过程的名字,参数是固定的
如何能够在另外一个存储过程中,在通过cursor得到存储过程名称后,动态调用,调用方式已经按照说明文档写好了,可是现在不知道怎么接受存储过程返回值!希望大家帮帮忙!!
CREATE OR REPLACE PROCEDURE PROC_ENTRY(i_spName in varchar2,i_branch_code in varchar2, i_date_begin in varchar2,i_date_end in varchar2,o_return_code out NUMBER)
IS
procStr varchar2;
BEGIN
procStr:= 'call '||i_spName|| '(:v1,:v2,:v3,:v4)';
execute immediate procStr using i_branch_code,i_date_begin,i_date_end,o_return_code,o_return_code;
END PROC_ENTRY;
如何能够在另外一个存储过程中,在通过cursor得到存储过程名称后,动态调用,调用方式已经按照说明文档写好了,可是现在不知道怎么接受存储过程返回值!希望大家帮帮忙!!
CREATE OR REPLACE PROCEDURE PROC_ENTRY(i_spName in varchar2,i_branch_code in varchar2, i_date_begin in varchar2,i_date_end in varchar2,o_return_code out NUMBER)
IS
procStr varchar2;
BEGIN
procStr:= 'call '||i_spName|| '(:v1,:v2,:v3,:v4)';
execute immediate procStr using i_branch_code,i_date_begin,i_date_end,o_return_code,o_return_code;
END PROC_ENTRY;
如果我本来就知道这个参数是输入类型了,我在执行
execute immediate procStr using i_branch_code,i_date_begin,i_date_end,o_return_code,o_return_code;后怎么接受过程的返回值是一个问题?希望能详细一些,谢谢了!
create or replace procedure p_test_call
(
in_parm1 number,
in_parm2 number,
out_parm1 out number
)
as
begin
out_parm1 := in_parm1 + in_parm2;
end p_test_call;
/
create or replace procedure p_test
(
in_parm1 number,
in_parm2 number,
out_parm1 out number
)
as
begin
execute immediate 'call p_test_call(:1, :2, :3)' using in_parm1, in_parm2, out out_parm1;
end p_test;
/var r_parm number;call p_test(1, 2, :r_parm);print r_parm;