Oracle ストアド プロシージャは、データベースに保存され、いつでも実行して呼び出すことができる、コンパイル済みの再利用可能な SQL ステートメントです。 Oracle ストアド プロシージャでは、パラメータを使用してより柔軟な呼び出しを実現できます。この記事では、Oracle ストアド プロシージャでパラメータを使用する方法について説明します。
Oracle データベースでは、ストアド プロシージャを作成するには、CREATE PROCEDURE
ステートメントを使用する必要があります。簡単な例を次に示します。
CREATE OR REPLACE PROCEDURE get_employee_details( employee_id IN NUMBER, employee_name OUT VARCHAR2, hire_date OUT DATE, salary OUT NUMBER ) AS BEGIN SELECT e.employee_name, e.hire_date, e.salary INTO employee_name, hire_date, salary FROM employees e WHERE e.employee_id = employee_id; END;
上記のコードは、4 つのパラメータを持つ get_employee_details
という名前のストアド プロシージャを作成します: employee_id
(IN 入力パラメータの型)、employee_name
、hire_date
、および salary
(OUT タイプの出力パラメーター)。ストアド プロシージャの機能は、employee_id
パラメータに基づいて従業員の詳細情報をクエリし、クエリ結果を出力パラメータに格納することです。
ストアド プロシージャが正常に作成されたら、EXECUTE
ステートメントを使用してそれを呼び出すことができます。ストアド プロシージャを呼び出すコードは次のとおりです。
DECLARE emp_name VARCHAR2(50); emp_hire_date DATE; emp_salary NUMBER; BEGIN get_employee_details(101, emp_name, emp_hire_date, emp_salary); DBMS_OUTPUT.PUT_LINE('Employee Name : ' || emp_name); DBMS_OUTPUT.PUT_LINE('Hire Date : ' || emp_hire_date); DBMS_OUTPUT.PUT_LINE('Salary : ' || emp_salary); END;
上記のコードでは、まず 3 つの変数 emp_name
、emp_hire_date
、および emp_salary
を宣言します。 , 次に、ストアド プロシージャ get_employee_details
を呼び出してパラメータ 101
を渡し、上で宣言した変数に出力パラメータを割り当てます。最後に、DBMS_OUTPUT
パッケージの PUT_LINE
関数を使用して、クエリ結果を出力します。
DECLARE
ステートメントと BEGIN
ステートメントはコード ブロックの始まりと終わりを表すため、これらのステートメントが必要であることに注意してください。コード ブロックでは、変数の宣言、ストアド プロシージャの呼び出し、さまざまな SQL ステートメントの実行などができます。
ストアド プロシージャのパラメータを定義する場合、次のタイプを使用できます。
IN
: 入力パラメータを示します。 、これらのパラメータはストアド プロシージャに値を渡すために使用されます。 OUT
: ストアド プロシージャから値を返すために使用される出力パラメーターを示します。 IN OUT
: 入力パラメータと出力パラメータの両方であることを示します。これらのパラメーターは、ストアド プロシージャに値を渡したり、ストアド プロシージャから値を返したりすることができます。 上記のタイプに加えて、NOCOPY
キーワードを使用してパラメータを定義することもできます。これにより、パラメータ転送中のメモリのコピーが回避され、実行効率が向上します。
実際の開発では、ストアド プロシージャのパラメーター呼び出しは非常に一般的であり、複数のシナリオに適用できます。典型的なアプリケーション シナリオの一部を次に示します。
この記事では、Oracle ストアド プロシージャでパラメータ呼び出しを使用する方法を紹介します。通常、ストアド プロシージャへのパラメータ化された呼び出しにより、コードの再利用性と柔軟性が大幅に向上し、より柔軟な機能をアプリケーションに提供できます。したがって、実際の開発では、ストアド プロシージャのパラメータ化された呼び出しを最大限に活用して、システムのパフォーマンスと保守性を向上させる必要があります。
以上がOracle ストアド プロシージャでパラメータを使用して呼び出しを行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。