位置:首頁 > 數據庫 > PL/SQL教學 > PL/SQL循環

PL/SQL循環

可能有一種情況,當需要執行的代碼塊的幾個多次。在一般情況下,語句順序執行:一個函數的第一條語句,首先執行,然後是第二個...等等。

編程語言提供了各種控製結構,允許更多複雜的執行路徑。

循環語句可以讓我們執行語句多次或一個組,下麵是在大多數編程語言循環語句的一般形式:

Loop Architecture

PL/ SQL提供了循環以下類型的處理循環的要求。點擊以下鏈接查看詳細信息。

循環類型 描述
PL/SQL基礎循環 在這個循環結構,語句序列封閉在LOOP和END LOOP語句之間。在每次迭代中,語句序列被執行,然後在循環的頂部恢複控製
PL/SQL WHILE循環 重複聲明語句或一組,而給定的條件為真,它測試條件執行循環體前
PL/SQL FOR循環 執行語句序列多次和簡寫管理該循環變量的代碼
PL/SQL內嵌循環 可以使用一個或多個循環中的任何其它基本回路,同時或循環

標記一個PL/SQL循環

PL/ SQL循環可以被標記。標記應該用雙尖括號括起來(<<和>>),並出現在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支持以下控製語句。標記循環也采取了循環外的控製。點擊以下鏈接查看他們的詳細資料。

控製語句 描述
EXIT語句 在EXIT語句END LOOP後立即完成返回,控製進到該語句
CONTINUE語句 將導致循環跳過其主體的其餘部分,並立即重新測試其使用情況聲明之前
GOTO語句 控製權轉移給標簽的語句。雖然不建議在程序中使用GOTO語句