1. 程式人生 > >儲存過程中的遊標使用

儲存過程中的遊標使用

儲存過程

1:遊標使用

第一步:遊標宣告:

:標點符號使用半形

CURSOR C_EMP IS /*宣告顯式遊標*/

SELECT * FROM dc_check_todo; /*遊標聲明後跟SQL語句*/

C_ROW C_EMP%ROWTYPE; /*定義遊標變數,該變數的型別為基於遊標C_EMP的記錄,既型別不固定,相當於var型別*/

第二部:使用遊標(三種迴圈方式)

:for迴圈

FOR C_ROW IN C_EMP LOOP  

 DBMS_OUTPUT.PUT_LINE(C_ROW.todo_id || '--' ); /*注意此處;連線符號要用||*/

 END LOOP;

:fetch迴圈

OPEN C_EMP;/*必須要明確的開啟和關閉遊標 */

BEGIN /*此處的begin不能少*/

 LOOP  

FETCH C_EMP  

 INTO C_ROW;  

EXIT WHEN C_EMP%NOTFOUND;  

DBMS_OUTPUT.PUT_LINE(C_ROW.todo_id || '++' );

 END LOOP;

END;  

CLOSE C_EMP; /*關閉遊標*/

:while迴圈

OPEN C_EMP;/*必須要明確的開啟和關閉遊標 */

 FETCH C_EMP INTO C_ROW;  

 WHILE C_EMP%FOUND LOOP  

  DBMS_OUTPUT.PUT_LINE(C_ROW.todo_id ||

 '**' );

FETCH C_EMP INTO C_ROW;

   END LOOP;

 CLOSE C_EMP;  END sp_sync_plan;

DEALLOCATE MycrsrVar          /* 刪除遊標 */