ホームページ  >  記事  >  データベース  >  Oracle ストアド プロシージャでの出力パラメータの使用について話しましょう

Oracle ストアド プロシージャでの出力パラメータの使用について話しましょう

PHPz
PHPzオリジナル
2023-04-04 10:39:531961ブラウズ

Oracle ストアド プロシージャは、データベースの特定のビジネス ロジックや処理操作を実装することを目的とした、事前にコンパイルされたコード セグメントです。 Oracle ストアド プロシージャでは、入出力にパラメータが必要になることが多く、出力パラメータの使用は非常に一般的です。この記事では、Oracle ストアド プロシージャでの出力パラメータの使用方法を詳しく紹介します。

出力パラメータとは

Oracle ストアド プロシージャの出力パラメータとは、ストアド プロシージャの実行終了後に呼び出し元に特定のデータを返すことを指します。簡単に言うと、出力パラメーターはストアド プロシージャの計算結果またはステータス値であり、これらの結果には数値、文字列、日付、その他の種類のデータが含まれます。

出力パラメータの宣言と使用

Oracle ストアド プロシージャでは、出力パラメータの宣言と使用は比較的簡単です。ストアド プロシージャでは、OUT キーワードを使用して出力パラメータを宣言できます。以下は、out_num と out_str という 2 つの出力パラメーターが宣言されている簡単なストアド プロシージャの例です。

CREATE OR REPLACE PROCEDURE my_procedure (in_param1 IN NUMBER, in_param2 IN VARCHAR2,
                                           out_num OUT NUMBER, out_str OUT VARCHAR2) IS
BEGIN
    /* 在存储过程中进行计算 */
    out_num := in_param1 * 10;
    out_str := in_param2 || ' World!';
END;
/

上の例では、ストアド プロシージャは 2 つの入力パラメータ in_param1 と in_param2 を受け入れ、実行結果を 2 つの出力パラメータ out_num と out_str に割り当てます。ストアド プロシージャが呼び出されるとき、実際のパラメータは IN および OUT キーワードを通じてストアド プロシージャに渡されます。

上記のストアド プロシージャの例を呼び出すコードは次のとおりです。

DECLARE
    result_num NUMBER;
    result_str VARCHAR2(50);
BEGIN
    /* 调用存储过程 */
    my_procedure(5, 'Hello', result_num, result_str);

    /* 输出结果 */
    DBMS_OUTPUT.PUT_LINE('result_num = ' || result_num);
    DBMS_OUTPUT.PUT_LINE('result_str = ' || result_str);
END;
/

ご覧のとおり、実際のパラメータ 5 と 'Hello' がストアド プロシージャに渡され、計算結果が返されます。結果は result_num および result_str 出力パラメータに返され、 DBMS_OUTPUT を通じて結果が出力されます。上記のコードを実行すると、次の結果が得られます。

result_num = 50
result_str = Hello World!

OUTPUT キーワード

Oracle 12c より前のバージョンでは、OUT キーワードを使用して出力パラメータを宣言することはできませんが、OUTPUT キーワードは使用済み 。以下は、OUTPUT キーワードを使用して出力パラメーターを宣言するストアド プロシージャの例です。

CREATE OR REPLACE PROCEDURE my_procedure (in_param1 IN NUMBER, in_param2 IN VARCHAR2,
                                           result_num OUT NUMBER, result_str OUT VARCHAR2) IS
BEGIN
    /* 在存储过程中进行计算 */
    result_num := in_param1 * 10;
    result_str := in_param2 || ' World!';
END;
/

上記のコードは、result_num と result_str という 2 つの出力パラメーターを宣言しています。ストアド プロシージャの実行後、計算結果はこれら 2 つの出力パラメータに割り当てられ、呼び出し元に返されます。

OUTPUT キーワードを使用してストアド プロシージャの例を呼び出すコードは次のとおりです。

DECLARE
    v_num NUMBER;
    v_str VARCHAR2(50);
BEGIN
    /* 调用存储过程 */
    my_procedure(5, 'Hello', v_num, v_str);

    /* 输出结果 */
    DBMS_OUTPUT.PUT_LINE('v_num = ' || v_num);
    DBMS_OUTPUT.PUT_LINE('v_str = ' || v_str);
END;
/

要約

Oracle ストアド プロシージャでは、出力パラメータは次の結果を返すことができる強力なツールです。計算結果とステータス値を呼び出し元に送信します。出力パラメータの宣言と使用は非常に簡単で、ストアド プロシージャで OUT または OUTPUT キーワードを直接使用するだけです。実際の開発では、多くの場合、出力パラメーターを使用してデータを処理し、コードを簡素化できます。

以上がOracle ストアド プロシージャでの出力パラメータの使用について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。