日期:2014-05-17  浏览次数:20714 次

存储过程调用存储过程返回值问题,急
在项目中碰到这样一个问题有2个存储过程proc_a和proc_b
在proc_a中执行一个查寻语句得到一个id
而在proc_b中我需要执行一边proc_a,并用到proc_a得到的那个id继续完成proc_b
请问proc_a怎么样返回那个id的值proc_b怎么样调用proc_a
哪位大虾能写2个proc的例子给我看一下啊

------解决方案--------------------
create or replace procedure p_01(p_id out varchar2)
is
begin
select 'aa ' into p_id from dual;
end p_01;

create or replace procedure p_02
is
v_id varchar2(20);
begin
p_01(v_id);
v_id:=v_id|| 'procedure_2 ';
dbms_output.put_line(v_id);
end p_02;


----
家里没有环境测试
不一定写得完全对阿
------解决方案--------------------
正如楼上所言,在过程的参数里加一个out参数(也称出参,in是入参),这个out参数就可以取得结果值并返回.这样,其它过程或函数就可以直接引用这个出参了.