一个简单的例子,关键还是得自己多做实践 create or replace procedure sp_test(i_yhbh in varchar, --用户编号 o_cur_flag out sys_refcursor --返回查询出的结果集 ) is begin open o_cur_flag for select * from T1 where yhbh = i_yhbh; end; end test ;
CREATE OR REPLACE PROCEDURE proA(v_output sys_refcursor) IS OPEN v_output FOR SELECT 1 ID FROM dual; END proA;CREATE OR REPLACE PROCEDURE PROB IS v_id NUMBER; v_cur sys_refcursor; BEGIN proA(v_cur); LOOP FETCH v_input INTO v_id; exit WHEN v_input%NOTFOUND; dbms_output.put_line(v_id); end LOOP; END;
create or replace procedure sp_test(i_yhbh in varchar, --用户编号
o_cur_flag out sys_refcursor --返回查询出的结果集
)
is
begin
open o_cur_flag for
select * from T1 where yhbh = i_yhbh;
end;
end test ;
IS
OPEN v_output FOR SELECT 1 ID FROM dual;
END proA;CREATE OR REPLACE PROCEDURE PROB
IS
v_id NUMBER;
v_cur sys_refcursor;
BEGIN
proA(v_cur);
LOOP
FETCH v_input INTO v_id;
exit WHEN v_input%NOTFOUND;
dbms_output.put_line(v_id);
end LOOP;
END;
这种逻辑最好可以放在一个sp里面实现