Loading

oracle获取存储过程返回的游标

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; 

 

posted @ 2014-07-11 15:36  Sam Xiao  阅读(332)  评论(0)    收藏  举报