Oracle でストアド プロシージャを呼び出す方法について説明します。

PHPz
リリース: 2023-04-17 14:50:30
オリジナル
1135 人が閲覧しました

Oracle データベースは強力なリレーショナル データベース管理システムであり、ストアド プロシージャは最も重要な機能の 1 つです。 Oracle では、ストアド プロシージャは、データベース内の特定のタスクを完了するために作成された一連の SQL ステートメントであり、通常は名前によって識別されます。この記事では、Oracle でストアド プロシージャを呼び出す方法を説明します。

Oracle では、ストアド プロシージャは通常、データベースからのデータのクエリ、データの更新、データの削除、データの挿入などの特定のタスクを実行するために使用されます。これらのストアド プロシージャは、SQL ステートメントを通じて作成してデータベースに保存し、必要に応じて呼び出して実行できます。

ストアド プロシージャを呼び出す方法は 3 つあります。SQL 文で直接呼び出す方法、PL/SQL ブロックを使用する方法、または Oracle API を使用する方法です。

  1. SQL ステートメントでのストアド プロシージャの直接呼び出し

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 を渡します。

  1. PL/SQL ブロックを使用したスト​​アド プロシージャの呼び出し

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 ストアド プロシージャに渡し、返された給与総額を出力します。

  1. Oracle API を使用したスト​​アド プロシージャの呼び出し

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート