PL / SQL-ループ
この章では、PL / SQLのループについて説明します。コードのブロックを数回実行する必要がある場合があります。一般に、ステートメントは順番に実行されます。関数の最初のステートメントが最初に実行され、次に2番目のステートメントが実行されます。
プログラミング言語は、より複雑な実行パスを可能にするさまざまな制御構造を提供します。
ループステートメントを使用すると、ステートメントまたはステートメントのグループを複数回実行できます。以下は、ほとんどのプログラミング言語でのループステートメントの一般的な形式です。
PL / SQLは、ループ要件を処理するために次のタイプのループを提供します。詳細を確認するには、次のリンクをクリックしてください。
S.No | ループの種類と説明 |
---|---|
1 | PL / SQLの基本的なループ このループ構造では、ステートメントのシーケンスはLOOPステートメントとENDLOOPステートメントの間に囲まれています。各反復で、ステートメントのシーケンスが実行され、ループの先頭で制御が再開されます。 |
2 | PL / SQL WHILE LOOP 指定された条件が真である間、ステートメントまたはステートメントのグループを繰り返します。ループ本体を実行する前に条件をテストします。 |
3 | PL / SQL FOR LOOP 一連のステートメントを複数回実行し、ループ変数を管理するコードを省略します。 |
4 | PL / SQLのネストされたループ 別の基本ループ、while、またはforループ内で1つ以上のループを使用できます。 |
PL / SQLループのラベル付け
PL / SQLループにはラベルを付けることができます。ラベルは二重山括弧(<<および>>)で囲み、LOOPステートメントの先頭に表示する必要があります。ラベル名は、LOOPステートメントの最後に表示することもできます。EXITステートメントのラベルを使用して、ループを終了できます。
次のプログラムは、概念を示しています-
DECLARE
i number(1);
j number(1);
BEGIN
<< outer_loop >>
FOR i IN 1..3 LOOP
<< inner_loop >>
FOR j IN 1..3 LOOP
dbms_output.put_line('i is: '|| i || ' and j is: ' || j);
END loop inner_loop;
END loop outer_loop;
END;
/
上記のコードをSQLプロンプトで実行すると、次の結果が生成されます。
i is: 1 and j is: 1
i is: 1 and j is: 2
i is: 1 and j is: 3
i is: 2 and j is: 1
i is: 2 and j is: 2
i is: 2 and j is: 3
i is: 3 and j is: 1
i is: 3 and j is: 2
i is: 3 and j is: 3
PL/SQL procedure successfully completed.
ループ制御ステートメント
ループ制御ステートメントは、実行を通常のシーケンスから変更します。実行がスコープを離れると、そのスコープで作成されたすべての自動オブジェクトが破棄されます。
PL / SQLは、以下の制御文をサポートしています。ループにラベルを付けると、制御をループの外に出すのにも役立ちます。詳細を確認するには、次のリンクをクリックしてください。
S.No | 制御ステートメントと説明 |
---|---|
1 | EXITステートメント Exitステートメントはループを完了し、制御はENDLOOPの直後にステートメントに渡されます。 |
2 | CONTINUEステートメント ループに本体の残りの部分をスキップさせ、繰り返す前にすぐにその状態を再テストします。 |
3 | GOTOステートメント ラベル付きステートメントに制御を移します。プログラムでGOTOステートメントを使用することはお勧めしませんが。 |