CallableStatement
ではなく、私にとって はPreparedStatement
うまくいきました。CallableStatement
以前は次のコードを使用していました
CallableStatement objCallableStatement = null;
objCallableStatement = connection.prepareCall("{call alad_balad(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
objCallableStatement.setLong(1, 431);
objCallableStatement.setString(2, "12434");
objCallableStatement.setString(3, "1234");
objCallableStatement.setString(4, "en");
objCallableStatement.setString(5, null);
objCallableStatement.setString(6, null);
objCallableStatement.setShort(7, Short.parseShort("0"));
objCallableStatement.setString(8, null);
objCallableStatement.setLong(9, 1);
objCallableStatement.setString(10, "1234");
objCallableStatement.registerOutParameter(11, java.sql.Types.VARCHAR);
objCallableStatement.registerOutParameter(12, java.sql.Types.VARCHAR);
objCallableStatement.registerOutParameter(13, java.sql.Types.VARCHAR);
objCallableStatement.registerOutParameter(14, java.sql.Types.BIGINT);
objCallableStatement.registerOutParameter(15, java.sql.Types.OTHER);
objCallableStatement.registerOutParameter(16, java.sql.Types.OTHER);
objCallableStatement.execute();
エンタープライズ版では、次のコードを使用しています
PreparedStatement objPreparedStatement = null;
try{
objConnection = objConnectionDataSource.getConnection();
objPreparedStatement = objConnection.prepareCall("{call alad_balad(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
objPreparedStatement.setLong(1, 431);
objPreparedStatement.setString(2, "12434");
objPreparedStatement.setString(3, "1234");
objPreparedStatement.setString(4, "en");
objPreparedStatement.setString(5, null);
objPreparedStatement.setString(6, null);
objPreparedStatement.setShort(7, Short.parseShort("0"));
objPreparedStatement.setString(8, null);
objPreparedStatement.setLong(9, 1);
objPreparedStatement.setString(10, "1234");
objPreparedStatement.execute();
ResultSet res = objPreparedStatement.getResultSet();
String in = null;
while ( res.next() ){
in = res.getString(1);
System.out.println(in);
}