在本章中,我們將討論和學習PL/SQL中的迴圈。當需要執行一段程式碼多次時可能會出現以下這種情況:一般來說,語句依次執行,首先執行函式中的第一個語句,然後執行第二個語句,依此類推。
程式設計語言提供了允許更複雜的執行路徑的各種控制結構。
迴圈語句允許多次執行一個語句或一組語句,以下是大多數程式設計語言中迴圈語句的一般流程圖 -
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
語句中的標籤退出迴圈。
以下程式說明了這個概念 -
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 語句。 |