首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 存儲過程中使用顯式游標完整範例

     編輯:Oracle 資料庫相關知識

標準顯式游標循環模板

CREATE OR REPLACE PROCEDURE procedure_name AS
BEGIN
  DECLARE
    s_para  VARCHAR2(50);
    s_para2 VARCHAR2(50);
    CURSOR c_cursor IS SELECT id, name FROM temp_table;
  BEGIN
    OPEN c_cursor;
    LOOP
      FETCH c_cursor INTO s_para, s_para2;
      EXIT WHEN c_cursor%NOTFOUND;
      -- 業務邏輯處理
      NULL;
    END LOOP;
    CLOSE c_cursor;
  END;
END;
/

關鍵點解析

  • DECLARE 區塊:定義變量與游標,游標查詢可帶參數化 WHERE 條件。
  • OPEN / FETCH / CLOSE:標準三步驟,務必成對出現,防止游標泄漏。
  • %NOTFOUND 屬性:判斷是否還有下一行,比手工計數更可靠。
  • 異常處理:生產環境建議在 LOOP 內包裹 BEGIN ... EXCEPTION ... END;,單行失敗不影響整體循環。

進階提示

  • 大數據量場景考慮 BULK COLLECT ... LIMIT 批量獲取,減少上下文切換。
  • 游標可定義為 SYS_REFCURSOR 供應用層消費(如 Java、.NET)。
  • Oracle 10g+ 支持隱式游標 FOR rec IN (SELECT ...) LOOP 寫法,代碼更簡潔。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved