首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 教學

PL/SQL 迴圈控制結構:LOOP、EXIT、IF 條件判斷完整範例

     編輯:Oracle 教學

PL/SQL 迴圈控制結構:LOOP、EXIT、IF 條件判斷完整範例

PL/SQL 提供基本的 LOOP ... END LOOP 無限迴圈,搭配 EXIT WHEN condition 或 IF ... THEN EXIT; END IF; 實現可控迴圈。本文展示最小可運行範例並解析執行流程。

基礎範例:計數器 1 到 3

DECLARE
  x NUMBER := 0;
BEGIN
  LOOP
    x := x + 1;           -- 迴圈體:遞增
    IF x > 3 THEN         -- 條件判斷
      EXIT;               -- 滿足條件跳出迴圈
    END IF;
    DBMS_OUTPUT.PUT_LINE('內 x 的值: ' || x);  -- 印出 1, 2, 3
  END LOOP;
  DBMS_OUTPUT.PUT_LINE('外 X 的值: ' || x);   -- 印出 4
END;
/
-- 輸出:
-- 內 x 的值: 1
-- 內 x 的值: 2
-- 內 x 的值: 3
-- 外 X 的值: 4

流程圖解

START
  x := 0
  ┌─────────────────────┐
  │ LOOP                │
  │   x := x + 1        │
  │   IF x > 3 THEN     │──Yes──► EXIT LOOP
  │     EXIT            │
  │   END IF            │
  │   PRINT x           │──No───► (繼續下一輪)
  └─────────────────────┘
  PRINT x (最終值 4)
END

等效寫法對比

寫法代碼特點
基本 LOOP + EXIT WHEN
LOOP
  x := x + 1;
  EXIT WHEN x > 3;
  DBMS_OUTPUT.PUT_LINE(x);
END LOOP;
最簡潔,條件在迴圈頂部
WHILE 迴圈
WHILE x <= 3 LOOP
  x := x + 1;
  DBMS_OUTPUT.PUT_LINE(x);
END LOOP;
條件前置,進入前先判斷
FOR 迴圈
FOR x IN 1..3 LOOP
  DBMS_OUTPUT.PUT_LINE(x);
END LOOP;
固定範圍迭代,無需手動管理計數器
游標 FOR 迴圈
FOR rec IN (SELECT * FROM emp) LOOP
  DBMS_OUTPUT.PUT_LINE(rec.ename);
END LOOP;
隱式開啟/關閉游標,逐行處理查詢結果

進階控制:CONTINUE (11g+)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved