Advertisement

如何在Java中调用DB2存储过程并解决ERRORCODE=-4476且SQLSTATE为null的情况?

阅读量:

需求:

项目将要调用Java语言访问并执行DB2数据库的存储过程,并随后通过结果集获取系统最终会返回的数据总量

跟大家一样 使用如下的办法:

如上图的红框内:

使用rs.last()返回到数据集的结尾,然后来得到这个记录数。

在生产环境中同步数据时遇到错误代码为-4476且SQL状态为空的情形。经过全面排查未发现有类似的案例。回溯整个过程才发现问题出在数据获取阶段。对于图中用红色标注的部分可以暂时忽略。

在网上遇到如下这样的解决办法:

st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

注:第一个参数:

ResultSet.TYPE_FORWARD_ONLY:结果集不会滚动;
ResultSet.TYPE_SCROLL_INSENSITIVE:虽然支持滚动功能但由于其设计特性确保数据不会因数据库的变化而导致更新;

第二个参数:

CONCUR_READ_ONLY

CONCUR_UPDATABLE: The result set is upda

全部评论 (0)

还没有任何评论哟~