儲存過程定義多個遊標多個begin

小白工作室發表於2019-02-13

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;

相關文章