【问题标题】:JDBC: check stored procedure return valueJDBC:检查存储过程返回值
【发布时间】:2013-07-24 06:50:58
【问题描述】:

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

【问题讨论】:

    标签: java sql postgresql stored-procedures jdbc


    【解决方案1】:

    您需要通过以下方式获取 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

    【讨论】:

    • 在我的情况下不需要结果集,我的函数只返回一个整数。仅在执行后调用 proc.getInt(1) 并将 registerOutParameter 第二个参数更改为 Types.INTEGER
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    相关资源
    最近更新 更多