ホームページ >データベース >Oracle >Oracleストアドプロシージャを呼び出す方法

Oracleストアドプロシージャを呼び出す方法

PHPz
PHPzオリジナル
2023-04-18 09:06:366563ブラウズ

Oracle ストアド プロシージャは、実行される一連の SQL 文を含むプリコンパイルされた PL/SQL コード ブロックです。ストアド プロシージャは、データベース内のデータを処理または操作するために使用できます。また、ストアド プロシージャを使用して、ビジネス ロジックやアプリケーション機能を実装することもできます。

Oracle データベースでは、ストアド プロシージャの呼び出しは次の方法で実装できます。

  1. SQL コマンド ライン ツールの使用

SQL コマンド ライン ツール (SQL*Plus など) を使用すると、CALL ステートメントを通じてストアド プロシージャを呼び出すことができます。 CALL ステートメントの構文形式は次のとおりです。

CALL 存储过程名(参数1, 参数2, ...);

このうち、ストアド プロシージャ名は呼び出されるストアド プロシージャの名前を指し、パラメータ 1、パラメータ 2 などは、CALL ステートメントが必要とする入力パラメータです。ストアド プロシージャ。ストアド プロシージャに入力パラメータがない場合は、パラメータ リストを省略できます。

たとえば、「my_proc」という名前のストアド プロシージャを呼び出すには 2 つの入力パラメータが必要で、その構文形式は次のとおりです。

CALL my_proc('参数1值', '参数2值');
  1. PL/SQL ブロックの使用

ストアド プロシージャは、PL/SQL ブロックを使用して呼び出すこともできます。 PL/SQL ブロックは、他のプログラミング言語の関数やサブルーチンと同様に、PL/SQL コードを作成および実行する方法です。 PL/SQL ブロック内では、BEGIN ブロックと END ブロックを使用して、実行するコードと、関連する入力パラメータと出力パラメータを定義できます。

たとえば、次は、「my_proc」という名前のストアド プロシージャを呼び出すための単純な PL/SQL ブロックです。

DECLARE
    参数1 VARCHAR2(50) := '参数1值';
    参数2 VARCHAR2(50) := '参数2值';
BEGIN
    my_proc(参数1, 参数2);
END;

その中で、DECLARE キーワードは、変数、パラメータ 1 およびパラメータを宣言するために使用されます。パラメーター 2 は入力パラメーターの変数名、:= は変数に初期値を割り当てるために使用され、my_proc は呼び出されるストアド プロシージャの名前です。

  1. Java プログラムの使用

Java プログラムでは、JDBC API を使用して Oracle ストアド プロシージャを呼び出すことができます。 JDBC にはストアド プロシージャを呼び出すための CallableStatement クラスが用意されており、ストアド プロシージャのパラメータを CallableStatement オブジェクトに渡し、実行中にストアド プロシージャと一緒に呼び出すことができます。

たとえば、以下はストアド プロシージャを呼び出し、結果を出力するサンプル プログラムです。

import java.sql.*;

public class CallStoredProcedure {
    public static void main(String[] args) throws Exception {
        String driverName = "oracle.jdbc.driver.OracleDriver";
        String connectionString = "jdbc:oracle:thin:@//localhost:1521/orcl";
        String userName = "USERNAME";
        String password = "PASSWORD";
        String storedProcedure = "my_proc";
        String param1 = "参数1值";
        String param2 = "参数2值";
          
        Class.forName(driverName);
        Connection con = DriverManager.getConnection(connectionString, userName, password);
      
        CallableStatement cst = con.prepareCall("{call " + storedProcedure + "(?,?)}");
        cst.setString(1, param1);
        cst.setString(2, param2);
        cst.execute();
      
        ResultSet rs = cst.getResultSet();
        while (rs.next()) {
            // 处理结果集
        }
      
        cst.close();
        con.close();
    }
}

このうち、driverName と connectionString は、JDBC が接続するときに必要なドライバおよび接続文字です。 Oracle データベース 文字列、userName、パスワードはデータベースのログイン名とパスワードです。 storageProcedure は呼び出されるストアド プロシージャの名前、param1 と param2 は入力パラメータの値です。

つまり、Oracle ストアド プロシージャは、SQL コマンド ライン ツール、PL/SQL ブロック、Java プログラムなど、さまざまな方法で呼び出すことができます。実際のアプリケーションでは、特定のニーズと環境に基づいてストアド プロシージャを呼び出す適切な方法を選択し、データ処理とロジック実装のタスクをより適切に完了できます。

以上がOracleストアドプロシージャを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。