Oracle存储过程调用存储过程

今天突然突发奇想让一个存储过程调用另外一个存储过程返回的游标,一个自己写的demo

内存储过程(v_id为传入的参数,result_cursor为传出的存储过程,放在cursor_package中)

create or replace procedure proc_innercursor(v_id in varchar, result_cursor out cursor_package.type_cursor) is
v_name varchar2(10);
begin
open result_cursor for select t.name from sys_resource t where t.id=v_id;
end proc_innercursor;

定义包

create or replace package cursor_package as
type type_cursor is ref cursor;
end;

外部调用的存储过程

create or replace procedure proc_testcursor (v_id in varchar2) is
result_cursor cursor_package.type_cursor;
type c_resor is record(
v_pid sys_resource.name%type  自定type
);
v_pidid c_resor;
begin
proc_tesetcursor(v_id,result_cursor);
loop
fetch result_cursor into v_pidid;
exit when result_cursor%notfound;
dbms_output.put_line(v_pidid.v_pid);
end loop;
close result_cursor;
end proc_testcursor;

posted @ 2014-05-22 22:21  942391815  阅读(1324)  评论(0编辑  收藏  举报