sql >> データベース >  >> RDS >> Oracle

OracleWHILELOOPの例

    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プログラム
    1. MySQLに挿入するときにPHPで一重引用符をエスケープする

    2. PDOを使用したヘルパー関数の挿入/更新

    3. 論理レプリケーションソリューションのパフォーマンス制限

    4. MySQLクエリが返した行数をカウントするにはどうすればよいですか?