java - JDBC:检查存储过程返回值

标签 java sql postgresql stored-procedures jdbc

我的 postgresql 数据库中有一个返回整数值的存储过程。当我使用 CallableStatement 从 jdbc 客户端调用我的过程时,当我在 CallableStatement 对象上调用 execute() 方法时,它只返回一个 boolean 值。如何读取函数的有效返回值?

最佳答案

您需要通过以下方式获取结果集:

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

关于java - JDBC:检查存储过程返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17840049/

相关文章:

java - 使用增量的乘法

java - 如何使用 JPA 保留枚举?

postgresql - 串行(自动递增)主键的标签

ruby-on-rails - 如何在不花很长时间的情况下更改大型 Postgres 表的默认值?

java - 使用 Gradle 执行 Cucumber 测试场景

sql - 使用 unnest() 返回行?

mysql - 获取不同的 show.name 和相关季节的 COUNT

sql - 从 postgresql 中的时间戳开始的小时用于动态查询

postgresql - 对于不存在的行,Redshift SELECT * 性能与 COUNT(*)

java - 具有 Web 服务的应用程序中异常处理的最佳方式