ストアドで条件分岐

Oracleのストアドプロシージャで受け取ったパラメータを使って処理を条件分岐する例を示します。以下の例では、パラメータ p_value の値に基づいて異なる処理を実行するストアドプロシージャを定義しています。

ストアドプロシージャ例

まず、ストアドプロシージャの基本的な構造を示します。この例では、p_value という数値パラメータを受け取ります。

CREATE OR REPLACE PROCEDURE example_procedure (
    p_value IN NUMBER
) IS
BEGIN
    -- 条件分岐処理
    IF p_value < 10 THEN
        -- p_value が 10 未満の場合の処理
        DBMS_OUTPUT.PUT_LINE('Value is less than 10');
    ELSIF p_value BETWEEN 10 AND 20 THEN
        -- p_value が 10 以上 20 以下の場合の処理
        DBMS_OUTPUT.PUT_LINE('Value is between 10 and 20');
    ELSE
        -- p_value が 20 を超える場合の処理
        DBMS_OUTPUT.PUT_LINE('Value is greater than 20');
    END IF;

EXCEPTION
    WHEN OTHERS THEN
        -- エラーハンドリング
        DBMS_OUTPUT.PUT_LINE('An error occurred: ' || SQLERRM);
END example_procedure;
/

詳細説明

  1. プロシージャの定義
    • CREATE OR REPLACE PROCEDURE example_procedure ( p_value IN NUMBER ) でプロシージャを定義。
    • p_value は入力パラメータで、NUMBER 型とします。
  2. 処理開始
    • BEGIN ブロック内で処理を記述。
  3. 条件分岐
    • IF p_value < 10 THEN で、p_value が 10 未満の場合の処理を記述。
    • ELSIF p_value BETWEEN 10 AND 20 THEN で、p_value が 10 以上 20 以下の場合の処理を記述。
    • ELSE で、p_value が 20 を超える場合の処理を記述。
  4. 例外処理
    • EXCEPTION ブロックでエラーハンドリングを行います。WHEN OTHERS THEN を使って、想定外のエラーをキャッチし、DBMS_OUTPUT.PUT_LINE でエラーメッセージを出力します。

使用例

以下のようにして、作成したプロシージャを呼び出し、動作を確認できます。

BEGIN
    example_procedure(5);   -- 出力: Value is less than 10
    example_procedure(15);  -- 出力: Value is between 10 and 20
    example_procedure(25);  -- 出力: Value is greater than 20
END;
/

以上が、Oracleのストアドプロシージャで受け取ったパラメータを使って処理を条件分岐する基本的な例です。必要に応じて条件を追加したり、処理内容を変更して利用してください。

コメント

タイトルとURLをコピーしました