oracle SQLはストアドプロシージャを実行します

王林
リリース: 2023-05-11 21:57:35
オリジナル
2203 人が閲覧しました

Oracle データベースでは、ストアド プロシージャは、必要なときに実行できる事前定義された SQL ステートメントのセットです。いつでも作成できる SQL ステートメントとは異なり、ストアド プロシージャはより効率的で、データ アクセス時のネットワーク トラフィックを削減し、システム パフォーマンスを向上させることができます。

実際のアプリケーションでは、複雑なデータベース操作を実行する必要がある場合があります。これは、ストアド プロシージャを呼び出すことで実現できます。 Oracleデータベースは、ストアド・プロシージャを作成するためのシンプルで明確な構文を提供しており、ユーザーは必要に応じてパラメータや戻り値などの情報をカスタマイズでき、プロセス制御文、例外処理、トランザクション処理などの機能も設定できます。

この記事では、簡単な例を使用して、Oracle データベースでストアド プロシージャを実行する方法を紹介します。

  1. ストアド プロシージャの作成

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_name: 作成する必要があるストアド プロシージャの名前。
  • parameter_name: ストアド プロシージャのパラメータ名。IN タイプ、OUT タイプ、または IN OUT タイプのいずれかになります。IN は入力パラメータを表し、OUT は出力パラメータを表します。
  • type: パラメータのデータ型。
  • declaration_section: 変数、カーソル、定数などを宣言します。
  • executable_section: ストアド プロシージャの実際の実行部分。
  • Exception_section: 例外処理コード ブロック。

次は、指定した従業員番号の情報をクエリするストアド プロシージャを作成する簡単な例です。

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;
ログイン後にコピー
  1. ストアド プロシージャを実行します

ストアド プロシージャを作成した後、さまざまな方法でそれを実行できます。以下に代替方法をいくつか示します。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!