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の大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント