すべての主要なプログラミング言語と同様に、PL/SQL はループをサポートしており、特定の条件が満たされるまで一連の命令を繰り返すことができます。
このチュートリアルでは、PL/SQL で LOOP ステートメントを使用して、コード ブロックを繰り返し実行する方法について説明します。
オラクルループ
PL/SQL 言語は、「for」ループや「while」ループなどのさまざまなループ構造をサポートしています。以下に示すように、Oracle の一般的なループの構文を表現できます。
<< ラベル >> ループ
loop_statement;
END LOOP loop_label;
これには、LOOP キーワードと実行するループの本体が含まれ、END LOOP キーワードで囲まれています。
LOOP ブロックは、定義されたアクションを実行し、完了後に制御を先頭のループ句に戻します。これは通常、特定の条件が満たされた後にループを終了するために、EXIT または EXIT WHEN 句で囲まれます。これにより、無限ループを防ぐことができます。
Oracle For ループ構文:
PL/SQL の「for」ループの構文を次に示します。
始めるFOR loop_variable IN [lower_bound..upper_bound] LOOP
-- ループで実行されるコード
エンドループ;
終わり;
loop_variable を使用すると、ループと下限および上限を制御するために使用されるループを定義できます。上限と下限は、ループ評価が発生する範囲の値を指定します。
Oracle While ループ
次の構文で示されるように、PL/SQL で「while」ループを定義することもできます。
始めるWILE 条件ループ
-- ループ アクション
エンドループ;
終わり;
「while」ループでは、条件が真の間、ループ アクションが繰り返し実行されます。
Oracle カーソル For ループ
Oracle は、特定の結果セットのすべての行に対して一連の命令を実行できるようにする「cursor for」ループもサポートしています。構文は次のように表現できます。
始めるFOR ループ変数 IN (SELECT 列 1、列 2、...
FROM テーブル 1、テーブル 2、...
WHERE 条件) ループ
-- ループ アクション
エンドループ;
終わり;
Oracle でのループの例
次の例では、Oracle での for、while、および for カーソル ループの操作の基本について説明します。
Oracle For ループの例:
この例は、「for」ループを使用して 1 から 10 までの数字を出力する方法を示しています。
始めるFOR i IN 1..10 ループ
DBMS_OUTPUT.PUT_LINE(i);
エンドループ;
終わり;
While ループの例:
以下に示すように、while ループを使用して同様のアクションを実行できます。
始める宣言する
私番号:= 1;
始める
WHILE i <= 10 ループ
DBMS_OUTPUT.PUT_LINE(i);
i := i + 1;
エンドループ;
終わり;
終わり;
これは、「for」ループと同様のアクションを実行する必要があります。
カーソル For ループの例:
以下は、「cursor for」ループを使用して顧客の氏名を取得する方法を示しています。
始めるFOR employee IN (SELECT 名、姓
FROM 従業員) LOOP
DBMS_OUTPUT.PUT_LINE(employee.first_name || ' ' || employee.last_name);
エンドループ;
終わり;
出力例:
結論
この投稿では、Oracle PL/SQL 言語の 3 つの主なタイプのループに遭遇しました。ドキュメントを確認して、さらに詳しく調べることができます。