儲存過程中的遊標使用
阿新 • • 發佈:2019-01-24
儲存過程
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 /* 刪除遊標 */