CREATE OR REPLACE procedure P_TESTA
(PRESULT OUT SYS_REFCURSOR)
as
error_msg nvarchar2(1000);
begin
OPEN PRESULT FOR select * from tbljobprocedure;
end ;
CREATE OR REPLACE PROCEDURE P_TESTB
AS
error_msg nvarchar2(1000);
VARCURSOR SYS_REFCURSOR;
R tbljobprocedure%ROWTYPE;
BEGIN
P_TESTA(VARCURSOR);
LOOP
FETCH VARCURSOR INTO R;
EXIT WHEN VARCURSOR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(R.ORGID);
END LOOP;
END P_TESTB;
begin
P_TESTB();
end;
======================================================================
begin
p_testb();
end;
CREATE OR REPLACE PROCEDURE P_TESTA (
PRESULT OUT SYS_REFCURSOR
)
AS
BEGIN
OPEN PRESULT FOR SELECT orgid FROM tbljobprocedure;
END P_TESTA;
CREATE OR REPLACE PROCEDURE P_TESTB
AS
VARCURSOR SYS_REFCURSOR;
CURSOR TMPCURSOR IS SELECT orgid FROM tbljobprocedure WHERE ROWNUM=1;
R TMPCURSOR%ROWTYPE;
BEGIN
P_TESTA(VARCURSOR);
LOOP
FETCH VARCURSOR INTO R;
EXIT WHEN VARCURSOR%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(R.orgid);
END LOOP;
END P_TESTB;