忍者ブログ
IT関係の小作人労働の日々の日記です。 インフラ構築、DB構築、アプリケーション開発・・・何でも屋です。 何でもできそうで、何にもできない。

【データベース:Oracle復習】PL/SQLの基本ループ!LOOP ~ END LOOPを攻略する


Oracle復習シリーズ、今回は「繰り返し処理」の基本です。PL/SQLで最もシンプルなループ構造である `LOOP` ~ `END LOOP` の使い方を確認しましょう。

1. サンプル:条件判定を伴うループ

【 コード 】 変数 `var1` が 3 になったらループを抜け、それ以外の場合はその値を出力するプログラムです。終了条件を明示的に記述するのがポイントです。

DECLARE
  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 をマスターすれば、大量のデータを一件ずつ処理するカーソル処理などの応用も見えてきますね。少しずつ、確実に復習を進めましょう!



PR