Oracle ストアド プロシージャの戻り値

WBOY
リリース: 2023-05-07 19:04:06
オリジナル
3656 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート