1. 程式人生 > >Java呼叫oracle function的兩種方式

Java呼叫oracle function的兩種方式

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了。
兩種方式都沒問題,但是第二種方式看起來正規點。