PL/SQL迴圈


在本章中,我們將討論和學習PL/SQL中的迴圈。當需要執行一段程式碼多次時可能會出現以下這種情況:一般來說,語句依次執行,首先執行函式中的第一個語句,然後執行第二個語句,依此類推。

程式設計語言提供了允許更複雜的執行路徑的各種控制結構。

迴圈語句允許多次執行一個語句或一組語句,以下是大多數程式設計語言中迴圈語句的一般流程圖 -

PL/SQL提供以下型別的迴圈來處理迴圈需求。可點選以下連結檢視每個迴圈型別如何使用。

編號 迴圈型別 描述
1 PL/SQL基本LOOP迴圈 在這個迴圈結構中,語句序列包含在LOOPEND LOOP語句之間。在每次疊代時,執行語句序列,然後在迴圈頂部繼續控制。
2 PL/SQL while迴圈 當給定條件為真時,重複一個語句或一組語句。它在執行迴圈體之前測試狀態。
3 PL/SQL for迴圈 多次執行一系列語句,並縮寫管理迴圈變數的程式碼。
4 PL/SQL巢狀迴圈 可在任何其他基本迴圈中使用一個或多個迴圈,如:whilefor迴圈。

標記PL/SQL迴圈

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

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

SET SERVEROUTPUT ON SIZE 1000000;
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提示符下執行時,它會產生以下結果 -

迴圈控制語句

迴圈控制語句從其正常順序更改執行。當執行離開範圍時,在該範圍內建立的所有自動物件都將被銷毀。

PL/SQL支援以下控制語句。標籤迴圈也有助於控制環外的控制。點選以下連結檢視它們的詳細資訊。

編號 控制語句 描述
1 EXIT語句 Exit語句完成迴圈,控制在END LOOP之後立即傳遞給語句。
2 CONTINUE語句 導致迴圈跳過其主體的剩餘部分,並在重申之前立即重新測試其狀態。
3 GOTO語句 轉移控制到標記語句。雖然不建議在程式中使用GOTO語句。