JDBC:检查存储过程的返回值

时间:2013-07-24 16:42:58

标签: java sql postgresql stored-procedures jdbc

我的postgresql数据库上有一个存储过程,它返回整数值。当我使用CallableStatement调用我的过程形式jdbc客户端时,当我在CallableStatement对象上调用execute()方法时,它只返回一个布尔值。我怎样才能读出函数的有效返回值?

1 个答案:

答案 0 :(得分:3)

您需要通过以下方式获取ResultSet:

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

相关问题