Javaからプロシージャを呼び出す方法

Javaからプロシージャを呼び出す方法

Javaからプロシージャを呼び出すサンプルです。

package com.confrage;

import java.sql.Array;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Types;

public class TestProc{
  public static void main(String[] args) {
  Connection conn = null;
  String path = "jdbc:oracle:thin:@localhost:1521:orcl";
  String id = "USER001";
  String pw = "USER001";

  String sql = "CALL PACK.proc001(?,?,?,?,?,?)";//パッケージ名.プロシージャ名

  try {
    // JDBCドライバをロード
    Class.forName("oracle.jdbc.driver.OracleDriver");

    // DBへのコネクションを作成
    conn = DriverManager.getConnection(path, id, pw);
    conn.setAutoCommit(false);

    // 実行するプロシージャを指定してパラメータっをセットする
    try (CallableStatement cs = conn.prepareCall(sql)) {
      // OUTパラメータ
      cs.registerOutParameter(4, Types.INTEGER);  
      cs.registerOutParameter(5, Types.VARCHAR);
      cs.registerOutParameter(6, Types.ARRAY, "INFOARRAY");
 
      // INパラメータ
      cs.setInt(1, 100);
      cs.setString(2, "2");

      // プロシージャを実行する
      cs.executeUpdate();

      // 実行結果取得
      int ret = cs.getInt(4);
      String retMsg = cs.getString(5);
      Array arr = cs.getArray(6);

      Object[] val = (Object[])arr.getArray();
    }
 
    } catch (Exception ex){

    } finally {
      try {
        conn.close();
      } catch (SQLException){
        throw new RuntimeException;
      }
    }
  }
}

コメント

タイトルとURLをコピーしました