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;
}
}
}
}

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^


コメント