PL/SQLでループ処理を行う方法はいくつかあります。この記事では、PL/SQLでよく使用されるループの基本構文を紹介し、それぞれの使い方を解説します。ループ処理を使うことで、繰り返しの処理を効率的に実行できるため、様々な場面で役立ちます。
基本的なLOOP構文
LOOPはPL/SQLで使用できる最も基本的なループ構文です。ループ内の処理が明示的に終了されるまで繰り返し実行されます。EXIT文を使って、特定の条件が満たされたときにループを終了させることができます。
BEGIN
LOOP
-- ここに処理を記述
EXIT WHEN 条件;
END LOOP;
END;
次の例では、counterが5を超えるまでカウントを表示します。
DECLARE
counter NUMBER := 1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE('カウント: ' || counter);
counter := counter + 1;
EXIT WHEN counter > 5;
END LOOP;
END;
このコードは、counterが1から始まり、5を超えるとループが終了します。
WHILEループ
WHILEループは、条件がTRUEである限り、処理を繰り返します。LOOPよりも制御が簡単で、開始時に条件を評価します。
BEGIN
WHILE 条件 LOOP
-- ここに処理を記述
END LOOP;
END;
次の例では、counterが5以下である限り、カウントを表示します。
DECLARE
counter NUMBER := 1;
BEGIN
WHILE counter <= 5 LOOP
DBMS_OUTPUT.PUT_LINE('カウント: ' || counter);
counter := counter + 1;
END LOOP;
END;
このコードでは、counterが5以下であれば繰り返し処理を行い、counterが6になるとループが終了します。
FORループ
FORループは、特定の範囲内で自動的に変数をインクリメントまたはデクリメントしながら繰り返し処理を行います。LOOPやWHILEに比べて簡潔に書けるのが特徴です。
BEGIN
FOR 変数 IN 初期値..終了値 LOOP
-- ここに処理を記述
END LOOP;
END;
次の例では、1から5までの数値をカウントします。
BEGIN
FOR counter IN 1..5 LOOP
DBMS_OUTPUT.PUT_LINE('カウント: ' || counter);
END LOOP;
END;
このコードでは、counterが1から5まで順に値を取り、ループが自動的に終了します。
REVERSE FORループ
FORループではREVERSEキーワードを使用することで、指定した範囲を逆順に処理することができます。降順でカウントダウンする場合などに便利です。
BEGIN
FOR counter IN REVERSE 5..1 LOOP
DBMS_OUTPUT.PUT_LINE('カウント: ' || counter);
END LOOP;
END;
次の例では、5から1までの数値を逆順にカウントします。
BEGIN
FOR counter IN REVERSE 5..1 LOOP
DBMS_OUTPUT.PUT_LINE('カウント: ' || counter);
END LOOP;
END;
このコードでは、counterが5から1までの範囲を取り、ループが終了します。
まとめ
PL/SQLでは、ループ処理を行うためにLOOP、WHILE、FORなどの様々な構文を使用することができます。それぞれのループには適した場面があり、用途に応じて使い分けることで効率的なコードを書くことができます。ぜひ、自分のプロジェクトでこれらのループを活用してみてください。