Oracle は、広く使用されているリレーショナル データベース管理システムです。 Oracle では、ストアド プロシージャは、一緒に保存され、単一の名前で呼び出され実行される前処理された SQL ステートメントのセットです。ストアド プロシージャを使用すると、データベースのパフォーマンスとセキュリティを向上させることができます。ストアド プロシージャがパラメーターを受け取る必要がある場合は、パラメーターを指定してストアド プロシージャを使用する必要があります。
パラメーター付きストアド プロシージャは、ユーザーがストアド プロシージャを実行する前にパラメーターを指定できる特殊なタイプのストアド プロシージャです。これらのパラメータは、数値、文字列、日付などです。パラメータ化されたストアド プロシージャは、一般的なデータ操作を完了するための高速かつ再利用性の高い方法を提供するため、Oracle データベースで非常に人気があります。
Oracle では、パラメーターを指定してストアド プロシージャを使用するための構文は次のとおりです。
CREATE [OR REPLACE] PROCEDURE procedure_name (parameter_name [IN|OUT] data_type [, …]) IS BEGIN /* Procedure Body */ END;
この構文では、3 つの主要な要素がわかります。
この構文では、パラメータの方向を指定するために使用される IN キーワードと OUT キーワードも確認できます。 IN は、パラメーターが入力パラメーターであること、つまりストアド プロシージャの実行時に値が提供されることを意味します。 OUT は、パラメーターが出力パラメーター、つまりストアド プロシージャの実行後に返される値であることを示します。
次に、パラメータを含む単純なストアド プロシージャを作成しましょう。このストアド プロシージャには、2 つの数値を表す 2 つの入力パラメータがあり、それらを加算して結果を返します。
CREATE OR REPLACE PROCEDURE add_two_numbers (num1 IN NUMBER, num2 IN NUMBER, result OUT NUMBER) IS BEGIN result := num1 + num2; END;
この例では、3 つのパラメーターを使用します。num1 と num2 は入力パラメーター、result は出力パラメーターです。ストアド プロシージャの本体で、加算演算子を使用して num1 と num2 を加算し、結果を result パラメータに代入します。
ここで、このストアド プロシージャを呼び出して出力を見てみましょう:
DECLARE num1 NUMBER := 10; num2 NUMBER := 20; res NUMBER; BEGIN add_two_numbers(num1, num2, res); DBMS_OUTPUT.PUT_LINE('The sum of ' || num1 || ' and ' || num2 || ' is ' || res); END;
このコードでは、num1、num2、res の 3 つの変数を宣言します。次に、add_two_numbers ストアド プロシージャを使用してこれら 2 つの変数を呼び出し、結果を res 変数に割り当てます。最後に、 DBMS_OUTPUT.PUT_LINE 関数を使用して、結果を端末に出力します。
ここで注意する必要があるのは、ストアド プロシージャの呼び出しでは、パラメータの順序でストアド プロシージャに値を渡す必要があるということです。
要約: パラメータを含むストアド プロシージャは、Oracle データベース管理システムにおいて非常に便利で便利な機能です。パラメーターを指定したストアド プロシージャを使用すると、一般的なデータ操作を簡単に完了でき、データベース システムのパフォーマンスとセキュリティを向上させることができます。パラメーターを使用してストアド プロシージャを作成するには、ストアド プロシージャの名前、パラメーターの名前とデータ型を指定する必要があります。また、ストアド プロシージャの呼び出しでは、ストアド プロシージャのパラメータに値をその順序で渡す必要があります。
以上がパラメータを使用した Oracle ストアド プロシージャの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。