如果在SP中使用临时表,则JDBC可调用语句返回null结果集

时间:2016-09-16 06:21:21

标签: java sql-server jdbc callable-statement

这里很简单,例如我如何使用callablestatement

Connection con = getConnection();
CallableStatement call = con.prepareCall("{call SpName(?, ?)}");
call .setObject(1, params[0]);
call .setObject(2, params[1]);
call .execute();
ResultSet rs = call .getResultSet();

它适用于所有SP。 但是如果在SP中使用了临时表,那么它将返回null Resultset。

1 个答案:

答案 0 :(得分:1)

通过添加此代码解决了我的问题

while (true) {
    rs = cstmt.getResultSet();
    int updateCount = cstmt.getUpdateCount();
    LogWriter.write(" Update count " + updateCount);
    if (rs == null && updateCount == -1) {
        break;
    }
    if (rs != null) {
        // process the result set
    } else {
        System.out.println("Update count = " + cstmt.getUpdateCount());
    }
    cstmt.getMoreResults();
}

参考:Here