PL/SQL - 迴圈



本章將討論 PL/SQL 中的迴圈。您可能需要多次執行一段程式碼塊。通常情況下,語句是順序執行的:函式中的第一個語句首先執行,然後是第二個語句,依此類推。

程式語言提供各種控制結構,允許更復雜的執行路徑。

迴圈語句允許我們多次執行一個語句或一組語句,以下是大多數程式語言中迴圈語句的一般形式:

Loop Architecture

PL/SQL 提供以下型別的迴圈來處理迴圈需求。點選以下連結檢視詳細資訊。

序號 迴圈型別和描述
1 PL/SQL 基本 LOOP 迴圈

在此迴圈結構中,語句序列包含在 LOOP 和 END LOOP 語句之間。在每次迭代中,都會執行語句序列,然後控制返回到迴圈頂部。

2 PL/SQL WHILE 迴圈

當給定條件為真時,重複執行一個語句或一組語句。它在執行迴圈體之前測試條件。

3 PL/SQL FOR 迴圈

多次執行一系列語句,並縮寫管理迴圈變數的程式碼。

4 PL/SQL 中的巢狀迴圈

您可以在任何其他基本迴圈、while 迴圈或 for 迴圈內使用一個或多個迴圈。

PL/SQL 迴圈的標註

PL/SQL 迴圈可以加標籤。標籤應括在雙尖括號(<< 和 >>)中,並出現在 LOOP 語句的開頭。標籤名稱也可以出現在 LOOP 語句的末尾。您可以在 EXIT 語句中使用標籤來退出迴圈。

以下程式說明了這個概念:

DECLARE 
   i number(1); 
   j number(1); 
BEGIN 
   << outer_loop >> 
   FOR i IN 1..3 LOOP 
      << inner_loop >> 
      FOR j IN 1..3 LOOP 
         dbms_output.put_line('i is: '|| i || ' and j is: ' || j); 
      END loop inner_loop; 
   END loop outer_loop; 
END; 
/

當在 SQL 提示符下執行上述程式碼時,會產生以下結果:

i is: 1 and j is: 1 
i is: 1 and j is: 2 
i is: 1 and j is: 3 
i is: 2 and j is: 1 
i is: 2 and j is: 2 
i is: 2 and j is: 3 
i is: 3 and j is: 1 
i is: 3 and j is: 2 
i is: 3 and j is: 3  

PL/SQL procedure successfully completed. 

迴圈控制語句

迴圈控制語句改變執行的正常順序。當執行離開作用域時,在該作用域中建立的所有自動物件都將被銷燬。

PL/SQL 支援以下控制語句。迴圈標註也有助於控制跳出迴圈。點選以下連結檢視詳細資訊。

序號 控制語句和描述
1 EXIT 語句

Exit 語句完成迴圈,控制傳遞到 END LOOP 後面的語句。

2 CONTINUE 語句

導致迴圈跳過其主體其餘部分,並在立即重新迭代之前立即重新測試其條件。

3 GOTO 語句

將控制轉移到帶標籤的語句。雖然不建議在程式中使用 GOTO 語句。

廣告