Oracle PL / SQLでは、WHILE LOOP文は、条件が真になるまでWHILELOOPとENDLOOPの間に記述されたコードを実行します。以下に、OracleWHILELOOPステートメントの例をいくつか示します。
構文
WHILE logical_condition LOOP -- some PL/SQL code END LOOP;
OracleWHILELOOPの例
1。 10回ループしてテーブルを印刷する
次の例では、WHILE LOOPは、n_num変数の値が10以下になるまでステートメントを実行します。ループの反復ごとに、n_num変数の値を1ずつ増やして、2のテーブルを出力します。
SET SERVEROUTPUT ON; DECLARE n_num NUMBER; n_table number := 2; BEGIN n_num := 1; WHILE n_num <= 10 LOOP DBMS_OUTPUT.put_line ('2 x ' || n_num || ' = '||(n_table * n_num)); n_num := n_num + 1; END LOOP; END; /
出力:
2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18 2 x 10 = 20 PL/SQL procedure successfully completed.
n_num変数の値をインクリメントして、最大10に到達できるようにすることを忘れないでください。インクリメントしないと、無限ループになります。
2。ブール変数値がTRUEになるまでループするには
次の例では、b_runブール変数値がTRUEになるまでループし、反復ごとに1ずつインクリメントしてn_num変数値を出力し、n_num変数の値が5より大きい場合、b_run変数をFALSEに設定します。 、WHILELOOPがその仕事を終えることができるように。
SET SERVEROUTPUT ON; DECLARE n_num NUMBER; b_run BOOLEAN := TRUE; BEGIN n_num := 1; WHILE b_run LOOP DBMS_OUTPUT.put_line (n_num || ' Times'); n_num := n_num + 1; IF n_num > 5 THEN b_run := FALSE; END IF; END LOOP; END; /
出力:
1 Times 2 Times 3 Times 4 Times 5 Times PL/SQL procedure successfully completed.
この場合も、b_run変数の値をFALSEに設定することを忘れないでください。そうしないと、無限ループになります。 exit;と書くこともできます b_run:=FALSE;の代わりに ループを終了するステートメント 。
関連項目:
- Oracle FORLOOPREVERSEの例
- 従業員の詳細を印刷するPL/SQLプログラム