Oracle データベースは強力なリレーショナル データベース管理システムであり、ストアド プロシージャは最も重要な機能の 1 つです。 Oracle では、ストアド プロシージャは、データベース内の特定のタスクを完了するために作成された一連の SQL ステートメントであり、通常は名前によって識別されます。この記事では、Oracle でストアド プロシージャを呼び出す方法を説明します。
Oracle では、ストアド プロシージャは通常、データベースからのデータのクエリ、データの更新、データの削除、データの挿入などの特定のタスクを実行するために使用されます。これらのストアド プロシージャは、SQL ステートメントを通じて作成してデータベースに保存し、必要に応じて呼び出して実行できます。
ストアド プロシージャを呼び出す方法は 3 つあります。SQL 文で直接呼び出す方法、PL/SQL ブロックを使用する方法、または Oracle API を使用する方法です。
SQL ステートメントでストアド プロシージャを直接呼び出すのは、最も簡単な方法の 1 つです。これは、次の構文で実現できます。
EXECUTE procedure_name(param1, param2, ..., paramN);
この構文では、procedure_name は呼び出されるストアド プロシージャの名前で、param1、param2、...、paramN は対応するパラメータ リストです。
たとえば、従業員の ID をパラメータとして受け取り、従業員の名前を出力する print_employee_name というストアド プロシージャがある場合、次のコマンドを使用してそれを呼び出すことができます。
EXECUTE print_employee_name(1234);
これにより、ストアド プロシージャ print_employee_name を呼び出し、パラメータとして 1234 を渡します。
PL/SQL は、Oracle の一部である手続き型プログラミング言語です。 PL/SQL は、ストアド プロシージャ、関数、トリガー、ハンドラー、その他の関数を作成するために使用される言語です。ストアド プロシージャ呼び出しステートメントを PL/SQL ブロックに記述することで、より多くの言語機能と命令を使用できるようになります。
次に、PL/SQL ブロックを使用してストアド プロシージャを呼び出すための構文を示します。
DECLARE -- Declare variable declarations and assign default values variable_name datatype := default_value; BEGIN -- Execute code and actions procedure_name(param1, param2, ..., paramN); END;
この構文では、variable_name は宣言で使用される変数名を表し、datatype はそのデータ型を表します。変数。 default_value は、この変数のデフォルト値です。ストアド プロシージャを呼び出すには、procedure_name、param1、param2 などのパラメータが必要です。
たとえば、従業員 ID と給与パラメータを受け取り、従業員の給与総額を返す Calculate_salary というストアド プロシージャがあるとします。次のコマンドを使用して、PL/SQL ブロックでこれを呼び出すことができます。
DECLARE employee_id NUMBER := 1234; salary NUMBER := 5000; total_salary NUMBER; BEGIN calculate_salary(employee_id, salary, total_salary); DBMS_OUTPUT.PUT_LINE('Employee ' || employee_id || ' has a total salary of ' || total_salary); END;
この PL/SQL ブロックは、従業員 ID と給与値を Calculate_salary ストアド プロシージャに渡し、返された給与総額を出力します。
Oracle API は、Oracle データベースでさまざまなデータ操作を実行するために使用できる API のセットです。 Oracle API を使用すると、ストアド プロシージャを呼び出すプログラムを作成できます。
Oracle API を使用してストアド プロシージャを呼び出すための一般的な構文は次のとおりです。
DECLARE -- Declare and initialize variables variable_name datatype; -- Declare cursor cursor_name REF CURSOR; BEGIN -- Open cursor OPEN cursor_name FOR SELECT * FROM table_name; -- Execute stored procedure EXECUTE stored_procedure_name(param1, param2, ..., paramN); -- Process results and display output FETCH cursor_name INTO variable_name; DBMS_OUTPUT.PUT_LINE(variable_name); END;
この構文では、cursor_name は REF CURSOR を使用して宣言されたカーソルの名前です。 Stored_procedure_name、param1、param2 およびその他のパラメータは、呼び出されるストアド プロシージャとそのパラメータです。
たとえば、従業員 ID をパラメータとして受け取り、従業員の名前を返す get_employee_name というストアド プロシージャがあるとします。次のコードを使用すると、Oracle API を使用してストアド プロシージャを呼び出すことができます。
DECLARE emp_id NUMBER := 1234; emp_name VARCHAR2(50); ref_cursor SYS_REFCURSOR; BEGIN OPEN ref_cursor FOR SELECT * FROM employee_table WHERE id = emp_id; EXECUTE get_employee_name(emp_id, emp_name); FETCH ref_cursor INTO emp_name; DBMS_OUTPUT.PUT_LINE('The employee with ID ' || emp_id || ' has a name of ' || emp_name); END;
Oracle API を使用して、カーソルを開いて、get_employee_name ストアド プロシージャを呼び出します。最後に、結果セット内の従業員の名前を取得し、画面に表示します。
概要
Oracle では、ストアド プロシージャは非常に強力でよく使用される機能であり、データベースのクエリと操作にさまざまなオプションを提供します。この記事では、Oracle でストアド プロシージャを呼び出す方法について説明し、SQL ステートメントでの直接呼び出し、PL/SQL ブロックの使用、Oracle API の使用を含む 3 つの方法を紹介します。これらの例を通じて、ストアド プロシージャを使用するとデータベース操作の効率が向上し、適切なツールや方法を使用して開発作業を簡素化できることがわかります。
以上がOracle でストアド プロシージャを呼び出す方法について説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。