Oracle儲存過程中定義多個遊標

風靈使發表於2018-08-27

1、直接定義多個顯示遊標

CREATE OR REPLACE PROCEDURE ACC.DBP_REALCITYTRAFFICCNT IS 
CURSOR cur1 IS SELECT 。。。 --第一個遊標 

CURSOR cur2 IS SELECT 。。。 --第二個遊標 

BEGIN 


--呼叫cur1 
BEGIN 
OPEN cur1 ;   
  LOOP 
  FETCH cur1 INTO 。。。 
  EXIT WHEN cur1%NOTFOUND;   
  ...業務邏輯 
  COMMIT; 

  END LOOP; 
  CLOSE cur1; 

END; 

--呼叫cur2 
BEGIN 
  OPEN cur2 ;   
  LOOP 
  FETCH cur2 INTO 。。。 
  EXIT WHEN cur2%NOTFOUND;   
  ...業務邏輯 
  COMMIT; 

  END LOOP; 
  CLOSE cur2; 

end; 
END DBP_REALCITYTRAFFICCNT; 

2、通過定義ref遊標來實現

TYPE refcur_t IS REF CURSOR; --宣告REF遊標型別 

cur1 refcur_t; --宣告第一個遊標REF遊標型別的變數 

cur2 refcur_t; --宣告第二個遊標REF遊標型別的變數 

BEGIN 


--呼叫cur1 
BEGIN 
OPEN cur1 ;   
  LOOP 
  FETCH cur1 INTO 。。。 
  EXIT WHEN cur1%NOTFOUND;   
  ...業務邏輯 
  COMMIT; 

  END LOOP; 
  CLOSE cur1; 

END; 

--呼叫cur2 
BEGIN 
  OPEN cur2 ;   
  LOOP 
  FETCH cur2 INTO 。。。 
  EXIT WHEN cur2%NOTFOUND;   
  ...業務邏輯 
  COMMIT; 

  END LOOP; 
  CLOSE cur2; 

end; 
END DBP_REALCITYTRAFFICCNT;

相關文章