Oracle データベースでは、ストアド プロシージャは、必要なときに実行できる事前定義された SQL ステートメントのセットです。いつでも作成できる SQL ステートメントとは異なり、ストアド プロシージャはより効率的で、データ アクセス時のネットワーク トラフィックを削減し、システム パフォーマンスを向上させることができます。
実際のアプリケーションでは、複雑なデータベース操作を実行する必要がある場合があります。これは、ストアド プロシージャを呼び出すことで実現できます。 Oracleデータベースは、ストアド・プロシージャを作成するためのシンプルで明確な構文を提供しており、ユーザーは必要に応じてパラメータや戻り値などの情報をカスタマイズでき、プロセス制御文、例外処理、トランザクション処理などの機能も設定できます。
この記事では、簡単な例を使用して、Oracle データベースでストアド プロシージャを実行する方法を紹介します。
Oracle データベースでストアド プロシージャを作成するには、ストアド プロシージャ、トリガー、および関数に対する Oracle の特殊なプロセスである PL/SQL 言語を使用する必要があります。書かれている言語。ストアド プロシージャを作成するための基本的な構文は次のとおりです。
CREATE [OR REPLACE] PROCEDURE procedure_name [(parameter_name [IN | OUT | IN OUT] type [, ...])] IS [declaration_section] BEGIN executable_section [EXCEPTION exception_section] END [procedure_name];
説明:
次は、指定した従業員番号の情報をクエリするストアド プロシージャを作成する簡単な例です。
CREATE OR REPLACE PROCEDURE get_employee_info (p_empno IN NUMBER) IS v_ename employees.ename%TYPE; v_job employees.job%TYPE; v_salary employees.sal%TYPE; BEGIN SELECT ename, job, sal INTO v_ename, v_job, v_salary FROM employees WHERE empno = p_empno; DBMS_OUTPUT.PUT_LINE('Employee Name: ' || v_ename); DBMS_OUTPUT.PUT_LINE('Job: ' || v_job); DBMS_OUTPUT.PUT_LINE('Salary: ' || v_salary); EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('Employee not found'); END;
ストアド プロシージャを作成した後、さまざまな方法でそれを実行できます。以下に代替方法をいくつか示します。
2.1 PL/SQL 開発ツールを使用して実行する
Oracle が提供する PL/SQL 開発ツールを使用して、ストアド プロシージャを実行できます。ツールを開いた後、実行する必要があるデータベース インスタンスに接続し、作成したストアド プロシージャを見つけて右クリックして [プロシージャの実行] を選択し、必要なパラメータを入力してストアド プロシージャを実行します。
2.2 SQL*Plus を使用した実行
Oracle が提供するコマンドライン ツール SQL*Plus を使用してストアド プロシージャを実行することもできます。実行する必要があるデータベース インスタンスに接続した後、次のコマンドを実行してストアド プロシージャを実行します:
EXEC procedure_name (parameter_value);
たとえば、上で作成したストアド プロシージャを実行するには、次のコマンドを使用できます:
EXEC get_employee_info (100);
2.3 Java プログラム実行の使用
データベースのビジネス ロジックが比較的複雑な場合、Java プログラムを通じてストアド プロシージャを呼び出して、より高度なビジネス ロジックを実装できます。以下は、上で作成したストアド プロシージャを呼び出すための単純な Java プログラムです。
import java.sql.*; public class ExecuteProcedure { public static void main(String[] args) { String url = "jdbc:oracle:thin:@localhost:1521:orcl"; String user = "username"; String password = "password"; try { Connection conn = DriverManager.getConnection(url, user, password); CallableStatement cst = conn.prepareCall("{call get_employee_info(?)}"); cst.setInt(1, 100); cst.execute(); conn.close(); } catch(SQLException e) { System.out.println(e.getMessage()); } } }
プログラムは、まずデータベースに接続し、次に Java の CallableStatement クラスを使用してストアド プロシージャを呼び出します。ストアド プロシージャを呼び出す前に、パラメータ値を設定する必要があります。ストアド プロシージャを実行すると、プログラムは従業員番号 100 に関する関連情報を出力します。
概要
上記は、Oracle データベースでストアド プロシージャを実行するための基本的な概要です。ストアド プロシージャは、データベースのパフォーマンスの最適化を促進し、開発効率をある程度向上させることができる強力かつ効率的なツールです。同時に、データ処理にストアド プロシージャをより適切に利用するために、ユーザーは PL/SQL 言語を習得する必要もあります。
以上がoracle SQLはストアドプロシージャを実行しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。