FOR LOOP
語句是一種重複控制結構,可以有效地編寫一個需要執行特定次數的迴圈。
下面演示如何使用FOR LOOP
語句 -
FOR counter IN initial_value .. final_value LOOP
sequence_of_statements;
END LOOP;
以下是FOR
迴圈中的控制流程 -
initial_value .. final_value
。如果結果為TRUE
,則執行迴圈的主體。如果結果為FALSE
,則迴圈主體不執行,並且控制流程跳轉到for
迴圈之後的下一個語句。for
迴圈的主體後,增加或減少計數器變數的值。TRUE
,則執行迴圈並且該過程重複(迴圈體,然後增量步,然後再次調節)。 條件變為FALSE
後,FOR-LOOP
終止。以下是PL/SQL for
迴圈的一些特殊特性 -
initial_value
和final_value
可以是文字,變數或表示式,但必須對數位求值。 否則,PL/SQL引發預定義的異常VALUE_ERROR
。initial_value
不必為1
; 但是,迴圈計數器增量(或減量)必須為1
。以下範例演示如何使用for
迴圈 -
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提示符下執行時,它會產生以下結果 -
預設情況下,迭代從初始值到最終值,通常從下限到上限。但是也可以使用REVERSE
關鍵字來反轉這個順序。 在這種情況下,迭代以另一種方式進行。每次疊代後,迴圈計數器遞減。
但是,必須以升序(不降序)順序寫入範圍界限。 以下程式說明了這一點 -
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提示符下執行時,它會產生以下結果 -