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

PL / SQLでループを使用せずに1から10を印刷するにはどうすればよいですか?

    ここでは、PL/SQLのループを使用せずに1から10を出力する例を示しています。値10を任意の数値(たとえば100)に変更することにより、最大任意の数値を印刷できます。

    ループを使用せずに1から10を出力するPL/SQLプログラム

    以下のプログラムでは、ループの代わりにPL / SQLラベルを使用して、値をインクリメントして出力しています。 (label_main)という名前のラベルで、変数(i)の値をインクリメントし、その値が10より大きいかどうかを確認してから、(label_end)という名前のラベルに制御を渡します。それ以外の場合は、ラベル(label_main)に制御を渡します。 IF条件の値を10から目的の数値に変更して、その数値まで印刷できます。

    SET SERVEROUTPUT ON;
    
    DECLARE
       i   NUMBER;
    BEGIN
       i := 0;
    
      <<label_main>>
       i := i + 1;
    
       IF i > 10
       THEN
          GOTO label_end;
       END IF;
    
      <<label_print>>
       DBMS_OUTPUT.put_line (i);
       GOTO label_main;
    
      <<label_end>>
       NULL;
    END;
    /

    出力

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    PL/SQL procedure successfully completed.
    1. 列の順序が考慮されていない(設定されている)一意のインデックスを作成する方法

    2. SQLOperationsStudioを使用してMacでSQLServerデータベースを復元する方法

    3. ドロップダウンを使用した場合、SQLインジェクションを防ぐ必要がありますか?

    4. ビューで使用されるPostgreSQL列を変更する