0
我的postgresql數據庫上有一個存儲過程,它返回整數值。當我使用CallableStatement調用我的過程窗體jdbc客戶端時,當我調用CallableStatement對象的execute()方法時,它只返回一個布爾值。我如何讀取函數的有效返回值?JDBC:檢查存儲過程的返回值
我的postgresql數據庫上有一個存儲過程,它返回整數值。當我使用CallableStatement調用我的過程窗體jdbc客戶端時,當我調用CallableStatement對象的execute()方法時,它只返回一個布爾值。我如何讀取函數的有效返回值?JDBC:檢查存儲過程的返回值
您需要通過得到一個結果:
ResultSet rs = stmt.executeQuery("SELECT * FROM setoffunc()");
while (rs.next()) {
// read results
}
rs.close();
stmt.close();
或者:
// Procedure call.
CallableStatement proc = conn.prepareCall("{ ? = call refcursorfunc() }");
proc.registerOutParameter(1, Types.OTHER);
proc.execute();
ResultSet results = (ResultSet) proc.getObject(1);
while (results.next()) {
// read results
}
results.close();
proc.close();
詳情請參見文檔:http://jdbc.postgresql.org/documentation/80/callproc.html
在我的情況下不需要的結果集,我的函數返回只有一個整數。只有在執行後調用proc.getInt(1)並將registerOutParameter第二個參數更改爲Types.INTEGER – giozh