Oracle データベースのストアド プロシージャは、再書き込みせずに複数回実行できる事前定義された PL/SQL プログラムです。ストアド プロシージャを Oracle データベースで使用すると、データ管理、アクセス制御、データ変換などのより効率的な機能を実現できます。
実際のアプリケーションでは、通常、プログラムの実行結果の確認や実行結果の取得など、さらなる処理のためにストアド プロシージャに値を返す必要があります。そこでこの記事では、戻り値の定義方法や戻り値の取得方法など、Oracleストアドプロシージャの戻り値に関する内容を紹介します。
1. ストアド プロシージャの戻り値を定義する
1. OUT パラメータを使用する
Oracle ストアド プロシージャは、OUT パラメータを通じて値を返すことができます。 OUT パラメータは本質的にストアド プロシージャのパラメータ タイプであり、ストアド プロシージャ内で値を割り当て、ストアド プロシージャの終了時に呼び出し元に返すことができます。ストアド プロシージャを定義するときは、以下に示すようにパラメータ タイプを OUT に設定できます。
CREATE OR REPLACE PROCEDURE procedure_name(p_param1 IN type1, p_param2 OUT type2) IS BEGIN -- 存储过程主体 END;
上記のコードでは、p_param2 は type2 の OUT パラメータです。
2. 関数の戻り値を使用する
ストアド プロシージャの戻り値を定義するもう 1 つの方法は、関数を使用することです。以下に示すように、ストアド プロシージャ内で関数が呼び出され、その関数はストアド プロシージャの結果として値を返します。
CREATE OR REPLACE FUNCTION function_name(p_param1 IN type1) RETURN type2 IS -- 函数主体 BEGIN RETURN result; END; CREATE OR REPLACE PROCEDURE procedure_name(p_param1 IN type1, p_result OUT type2) IS BEGIN p_result = function_name(p_param1); END;
上記のコードでは、ストアド プロシージャは関数 function_name を呼び出し、戻り値を格納します。 p_result変数の真ん中にあります。
2. ストアド プロシージャの戻り値を取得する
1. OUT パラメータを使用する
ストアド プロシージャを呼び出すときに、戻り値として OUT パラメータを使用できます。
DECLARE v_result type2; -- 存储过程返回结果 BEGIN procedure_name(param1, v_result); DBMS_OUTPUT.PUT_LINE('result:' || v_result); END;
上記のコードでは、ストアド プロシージャ process_name は実行結果を v_result 変数に格納し、output ステートメントを通じて結果を出力します。
2. 関数の戻り値を使用する
ストアド プロシージャを呼び出すとき、変数を使用して関数の戻り値を格納し、それをストアド プロシージャの実行結果として使用できます。
DECLARE v_result type2; -- 存储过程返回结果 BEGIN v_result = function_name(param1); DBMS_OUTPUT.PUT_LINE('result:' || v_result); END;
上記のコードでは、ストアド プロシージャ function_name が実行結果を変数 v_result に保存し、output ステートメントを通じて結果を出力します。
つまり、ストアド プロシージャは非常に実用的なデータベース プログラミング テクノロジであり、実際のアプリケーションでは、後続の処理のためにストアド プロシージャの実行結果を取得する必要があることがよくあります。この記事では、ストアド プロシージャの戻り値を定義する 2 つの方法とその結果を取得する方法を紹介します。読者は実際のニーズに応じて対応する方法を選択できます。
以上がOracle ストアド プロシージャの戻り値の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。