PL/SQL for循環(huán)

2021-08-30 16:47 更新

FOR LOOP語句是一種重復控制結構,可以有效地編寫一個需要執(zhí)行特定次數的循環(huán)。

語法

下面演示如何使用FOR LOOP語句 -

FOR counter IN initial_value .. final_value LOOP 
   sequence_of_statements; 
END LOOP;
SQL

以下是FOR循環(huán)中的控制流程 -

  • 首先執(zhí)行初始步驟,只執(zhí)行一次。 此步驟允許聲明和初始化任何循環(huán)控制變量。
  • 接下來,評估條件,即initial_value .. final_value。如果結果為TRUE,則執(zhí)行循環(huán)的主體。如果結果為FALSE,則循環(huán)主體不執(zhí)行,并且控制流程跳轉到for循環(huán)之后的下一個語句。
  • 執(zhí)行for循環(huán)的主體后,增加或減少計數器變量的值。
  • 現在再次評估條件。 如果計算為TRUE,則執(zhí)行循環(huán)并且該過程重復(循環(huán)體,然后增量步,然后再次調節(jié))。 條件變?yōu)镕ALSE后,FOR-LOOP終止。

以下是PL/SQL for循環(huán)的一些特殊特性 -

  • 循環(huán)變量或計數器的initial_value和final_value可以是文字,變量或表達式,但必須對數字求值。 否則,PL/SQL引發(fā)預定義的異常VALUE_ERROR。
  • initial_value不必為1; 但是,循環(huán)計數器增量(或減量)必須為1。
  • PL/SQL允許在運行時動態(tài)地確定循環(huán)范圍。

示例

以下示例演示如何使用for循環(huán) -

SET SERVEROUTPUT ON SIZE 100000;
DECLARE 
   a number(2); 
BEGIN 
   FOR a in 10 .. 20 LOOP 
      dbms_output.put_line('value of a: ' || a); 
  END LOOP; 
END; 
/
SQL

當上述代碼在SQL提示符下執(zhí)行時,它會產生以下結果 -


反轉FOR LOOP語句

默認情況下,迭代從初始值到最終值,通常從下限到上限。但是也可以使用REVERSE關鍵字來反轉這個順序。 在這種情況下,迭代以另一種方式進行。每次迭代后,循環(huán)計數器遞減。

但是,必須以升序(不降序)順序寫入范圍界限。 以下程序說明了這一點 -

SET SERVEROUTPUT ON SIZE 100000;
DECLARE 
   a number(2) ; 
BEGIN 
   FOR a IN REVERSE 10 .. 20 LOOP 
      dbms_output.put_line('value of a: ' || a); 
   END LOOP; 
END; 
/
SQL

當上述代碼在SQL提示符下執(zhí)行時,它會產生以下結果 -


 



以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號