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;

Oracle存储过程调用存储过程,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。