PL/SQL for循環(huán)

2021-08-30 16:47 更新

FOR LOOP語(yǔ)句是一種重復(fù)控制結(jié)構(gòu),可以有效地編寫一個(gè)需要執(zhí)行特定次數(shù)的循環(huán)。

語(yǔ)法

下面演示如何使用FOR LOOP語(yǔ)句 -

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

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

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

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

  • 循環(huán)變量或計(jì)數(shù)器的initial_value和final_value可以是文字,變量或表達(dá)式,但必須對(duì)數(shù)字求值。 否則,PL/SQL引發(fā)預(yù)定義的異常VALUE_ERROR。
  • initial_value不必為1; 但是,循環(huán)計(jì)數(shù)器增量(或減量)必須為1。
  • PL/SQL允許在運(yùn)行時(shí)動(dòng)態(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

當(dāng)上述代碼在SQL提示符下執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果 -


反轉(zhuǎn)FOR LOOP語(yǔ)句

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

但是,必須以升序(不降序)順序?qū)懭敕秶缦蕖?以下程序說(shuō)明了這一點(diǎ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

當(dāng)上述代碼在SQL提示符下執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果 -


 



以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)