2013-07-24 33 views
0

我的postgresql數據庫上有一個存儲過程,它返回整數值。當我使用CallableStatement調用我的過程窗體jdbc客戶端時,當我調用CallableStatement對象的execute()方法時,它只返回一個布爾值。我如何讀取函數的有效返回值?JDBC:檢查存儲過程的返回值

回答

2

您需要通過得到一個結果:

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

+2

在我的情況下不需要的結果集,我的函數返回只有一個整數。只有在執行後調用proc.getInt(1)並將registerOutParameter第二個參數更改爲Types.INTEGER – giozh