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;
/
詳細説明
- プロシージャの定義
CREATE OR REPLACE PROCEDURE example_procedure ( p_value IN NUMBER )でプロシージャを定義。p_valueは入力パラメータで、NUMBER型とします。
- 処理開始
BEGINブロック内で処理を記述。
- 条件分岐
IF p_value < 10 THENで、p_valueが 10 未満の場合の処理を記述。ELSIF p_value BETWEEN 10 AND 20 THENで、p_valueが 10 以上 20 以下の場合の処理を記述。ELSEで、p_valueが 20 を超える場合の処理を記述。
- 例外処理
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のストアドプロシージャで受け取ったパラメータを使って処理を条件分岐する基本的な例です。必要に応じて条件を追加したり、処理内容を変更して利用してください。

コメント