
- PL/SQL 教程
- PL/SQL - 首頁
- PL/SQL - 概述
- PL/SQL - 環境
- PL/SQL - 基本語法
- PL/SQL - 資料型別
- PL/SQL - 變數
- PL/SQL - 常量和字面量
- PL/SQL - 運算子
- PL/SQL - 條件
- PL/SQL - 迴圈
- PL/SQL - 字串
- PL/SQL - 陣列
- PL/SQL - 過程
- PL/SQL - 函式
- PL/SQL - 遊標
- PL/SQL - 記錄
- PL/SQL - 異常
- PL/SQL - 觸發器
- PL/SQL - 包
- PL/SQL - 集合
- PL/SQL - 事務
- PL/SQL - 日期和時間
- PL/SQL - DBMS 輸出
- PL/SQL - 面向物件
- PL/SQL 有用資源
- PL/SQL - 問答
- PL/SQL - 快速指南
- PL/SQL - 有用資源
- PL/SQL - 討論
PL/SQL - GOTO 語句
在 PL/SQL 程式語言中,GOTO 語句提供從 GOTO 到同一子程式中帶標籤語句的無條件跳轉。
注意 - 不建議在任何程式語言中使用 GOTO 語句,因為它使跟蹤程式的控制流變得困難,從而使程式難以理解和修改。任何使用 GOTO 的程式都可以重寫,使其不需要 GOTO。
語法
PL/SQL 中 GOTO 語句的語法如下:
GOTO label; .. .. << label >> statement;
流程圖

示例
DECLARE a number(2) := 10; BEGIN <<loopstart>> -- while loop execution WHILE a < 20 LOOP dbms_output.put_line ('value of a: ' || a); a := a + 1; IF a = 15 THEN a := a + 1; GOTO loopstart; END IF; END LOOP; END; /
當在 SQL 提示符下執行上述程式碼時,它會產生以下結果:
value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 16 value of a: 17 value of a: 18 value of a: 19 PL/SQL procedure successfully completed.
GOTO 語句的限制
PL/SQL 中的 GOTO 語句施加以下限制:
GOTO 語句不能分支到 IF 語句、CASE 語句、LOOP 語句或子塊中。
GOTO 語句不能從一個 IF 語句子句分支到另一個,也不能從一個 CASE 語句 WHEN 子句分支到另一個。
GOTO 語句不能從外部塊分支到子塊(即內部 BEGIN-END 塊)。
GOTO 語句不能從子程式中分支出來。要提前結束子程式,請使用 RETURN 語句或讓 GOTO 分支到子程式結束前的某個位置。
GOTO 語句不能從異常處理程式分支回當前的 BEGIN-END 塊。但是,GOTO 語句可以從異常處理程式分支到封閉塊。
plsql_loops.htm
廣告