Oracle は一般的なリレーショナル データベース管理システムです。Oracle ストアド プロシージャを使用すると、データベース操作が最適化され、データベースのパフォーマンスが向上します。この記事では、パラメータを使用してストアド プロシージャを定義する方法、パラメータを使用してストアド プロシージャを呼び出す方法など、Oracle ストアド プロシージャについて紹介します。
1. ストアド プロシージャの概要:
ストアド プロシージャは、プログラム コードがデータベースに保存されるプリコンパイルされたデータベース プログラムであり、一度作成すると再利用できます。 SQL ステートメントとは異なり、ストアド プロシージャは実行が速く、再利用可能で、一定のセキュリティとメンテナンスが可能です。
ストアド プロシージャは、Oracle データベースで次の目的を達成できます:
2. パラメーターを使用してストアド プロシージャを定義する
Oracle ストアド プロシージャを定義するときは、パラメーターを受け取ることができます。パラメーターには、入力パラメーター、出力パラメーター、または入出力パラメーターを使用できます。 。
パラメータを使用してストアド プロシージャを定義する一般的な形式は次のとおりです。
CREATE [OR REPLACE] PROCEDURE プロシージャ名
(parameter1 [IN | OUT | IN OUT] type1 [, パラメータ 2 [IN | OUT | IN OUT] type2 ...])
IS | AS
[ローカル宣言]
BEGIN
実行可能ステートメント
[EXCEPTION
例外ハンドラ]
END [プロシージャ名];
このうち、CREATE PROCEDURE ステートメントはストアド プロシージャの定義に使用されます。プロシージャ名はストアド プロシージャの名前、IN、OUT、IN OUT はパラメータ転送メソッドです。 type はパラメータのデータ型、IS/ AS の後はローカル変数の宣言、BEGIN と END の間はストアド プロシージャの実行可能ステートメント、EXCEPTION は例外処理ステートメントです。
単純なストアド プロシージャを例に挙げます。
CREATE PROCEDURE get_employee_salary
(
emp_id IN NUMBER,
給与 OUT NUMBER
)
IS
BEGIN
SELECT給与 INTO給与 FROM従業員 WHERE従業員_id = emp_id;
END;
このストアド プロシージャには、入力パラメータ emp_id と出力パラメータ給与の 2 つのパラメータがあります。これは、employees テーブルの emp_id に基づいて対応する給与値をクエリし、それを出力パラメータ給与に割り当てます。
3. パラメーターを使用してストアド プロシージャを呼び出す
ストアド プロシージャを呼び出すときは、ストアド プロシージャの名前とパラメーター リストを指定する必要があります。パラメーター リストの順序は、ストアド プロシージャを定義するときにパラメーターがリストされる順序と同じである必要があります。たとえば、上記の get_employee_salary ストアド プロシージャを呼び出すには、次の SQL ステートメントを使用できます。
DECLARE
n_employee_id NUMBER := 100;
n_salary NUMBER;
BEGIN
get_employee_salary( n_employee_id, n_salary) ;
DBMS_OUTPUT.PUT_LINE('ID ' || n_employee_id || ' の従業員の給与は ' || n_salary);
END;
このステートメントは変数 n_employee_id を定義します、値は 100 です。別の変数 n_salary には初期値が割り当てられていません。 get_employee_salary ストアド プロシージャを使用して、n_employee_id に対応する給与値をクエリし、その結果を n_salary 変数に割り当て、最後に結果を出力します。
上記はOracleストアドプロシージャのパラメータ定義と呼び出し方法です。ストアド プロシージャを使用すると、データベース操作の効率と柔軟性が大幅に向上します。ただし、ストアド プロシージャを設計するときは、ストアド プロシージャの効率と保守性、および必要なビジネス ロジックを完了するためにストアド プロシージャを使用する必要があるかどうかを考慮する必要があります。
以上がパラメータを使用した Oracle ストアド プロシージャの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。