Java呼叫oracle function的兩種方式
阿新 • • 發佈:2019-01-03
兩種方式都沒問題,但是第二種方式看起來正規點。1. PreparedStatement stmt =conn.prepareStatement("select pkg.fun(?) from dual"); stmt.setLong(1,123); Result rs = stmt.executeQuery(); if (rs.next) { return rs.getDouble(1); } 2. CallableStatement stmt=conn.prepareCall("{?=call pkg.fun(?)}"); stmt.registerOutParameter(1,java.sql.Types.DOUBLE); stmt.setLong(2,123); if (!stmt.execute()) { return stmt.getDouble(1); } // 下面從網上找到的資訊 CallableStatement.execute() 返回布林值。。 如果返回的第一個值是ResultSet,則返回true,否則返回false。。 終於明白為什麼執行成功也返回false了。