【データベース:Oracle復習】PL/SQLの基本ループ!LOOP ~ END LOOPを攻略する
Oracle復習シリーズ、今回は「繰り返し処理」の基本です。PL/SQLで最もシンプルなループ構造である `LOOP` ~ `END LOOP` の使い方を確認しましょう。
1. サンプル:条件判定を伴うループ
【 コード 】 変数 `var1` が 3 になったらループを抜け、それ以外の場合はその値を出力するプログラムです。終了条件を明示的に記述するのがポイントです。
var1 NUMBER := 1 ;
BEGIN
Loop
-- var1 が 3 ならループを抜ける
-- それ以外の場合は、var1の値を出力
IF var1 = 3 THEN
EXIT ;
ELSE
DBMS_OUTPUT.PUT_LINE(var1);
END IF ;
var1 := var1 + 1 ;
END Loop ;
END ;
/
2. 実行結果:数値の出力
1
2
3に到達した時点で `EXIT` が呼ばれるため、出力されるのは「1」と「2」のみとなります。
3. 解説:ループ制御の重要性
この基本的なループ構造では、終了条件(EXIT)を書き忘れると「無限ループ」になってしまうため、注意が必要です。
★ DECLARE:変数の宣言。今回は `var1` を 1 で初期化しています。
★ EXIT:ループを強制終了する命令。IF文と組み合わせて使います。
★ DBMS_OUTPUT.PUT_LINE:コンソールに結果を表示するための標準的な手段です。
★ var1 := var1 + 1:カウントアップ。これを忘れると無限ループの元です。
1. 理解のコツ: `LOOP` は「とにかく回せ」という命令。出口を `IF ... THEN EXIT` で作るのが基本の形です。シンプルですが、一番自由度が高いループでもあります。
2. 復習の視点: 今回のように `IF` 文で抜ける方法のほかに、`EXIT WHEN var1 = 3;` という、より短く書ける構文もあります。併せて覚えておくと便利ですね。
4. まとめ
「条件を満たすまで繰り返す」。これがプログラムに知能を与える第一歩です。今回の LOOP ~ END LOOP をマスターすれば、大量のデータを一件ずつ処理するカーソル処理などの応用も見えてきますね。少しずつ、確実に復習を進めましょう!