关闭了无效的操作结果集错误代码4470 sqlstate null - DB2数据提取

piv4azn7  于 2022-11-07  发布在  DB2
关注(0)|答案(6)|浏览(524)

我正在运行一个非常简单的查询,并试图将结果提取到一个文本文件中。整个查询基本上如下所示,我正在从一个表中选择所有内容,其中一条where条件将数据限制为一个月的值。在提取了大约1.2 GB后,出现了此错误。除了提取更小的日期范围外,还有其他方法可以解决此问题吗?我正试图拉几年的数据价值,所以如果我只能得到它几天的时间,这将需要大量的手工工作。
我目前正在使用DB2查询工具RazorSQL的免费试用版,我可能会购买不同的软件,如果它会帮助。我试图得到IBM的工具,但由于某种原因,它冻结在下载过程中,所以我仍在努力。我已经搜索了有关此错误,但我看到的一切似乎比我正在做的要复杂得多,我可以'I don“我不知道它是否适用。

select *
from MyTable
where date_col between date '2014-01-01' and date '2014-01-31'
pdsfdshx

pdsfdshx1#

我也遇到了这个错误,发现它与db2jcc.jar(类型4)驱动程序有关。

**摘录:**如果结果集中没有剩余的项(或开始),结果集将自动关闭,因此会出现异常。建议在应用程序中处理它,可能在我的情况下,我开始检查if(rs.next()),但在其他情况下,有一个变通办法。请查看下面的源链接,了解如何将一些属性设置为数据源并避免异常。

来源:"Invalid operation: result set is closed" error with Data Server Driver for JDBC

eqqqjvef

eqqqjvef2#

在我的例子中,我在WAS中遗漏了一些属性,在添加allowNextOnExhaustedResultSet之后,问题得到了修复。
1.登录到WebSphere Application Server管理控制台。
2.选择“资源”〉“JDBC”〉“数据源”〉“应用程序中心数据源名称”〉“自定义属性”,然后单击“新建”。
3.在“名称”字段中,输入allowNextOnExhaustedResultSet。
4.在“值”字段中,键入1。
5.将类型变更为java. lang. Integer。
6.按一下“确定”。
有时还需要检查resultSetHoldability属性是否存在。详细信息请参阅here

ycggw6v2

ycggw6v23#

我在从JDBC类型2驱动程序(db2java.zip)升级到JDBC类型4驱动程序(db2jcc4.jar)时也遇到了此故障

Statement statement = results.getStatement();
if (statement != null) 
{
    connection = statement.getConnection();  //**failed here
    statement.close();
}

解决方案是检查语句是否已关闭,如下所示。
变更为:

Statement statement = results.getStatement();
if (statement != null && !statement.isClosed()) {
{
    connection = statement.getConnection();
    statement.close();
}
t5zmwmid

t5zmwmid4#

创建Integer类型的属性below对我很有效:
allowNextOnExhaustedResultSet

6bc51xsx

6bc51xsx5#

我在WAS 7上也遇到了同样的问题,所以我不得不在管理控制台上添加和更改一些这方面的内容。
应通过应用APAR JR50863修复此TeamWorksRuntimeException异常,APAR JR50863可在BPM V8.5.5的顶部获得或包含在BPM V8.5 Refresh Pack 6中。对于APAR不能解决问题的情况,请尝试以下解决方法:
1.登录到WebSphere Application Server管理控制台
1.选择资源〉JDBC〉数据源〉数据源名称(TeamWorksDB)〉自定义属性,然后单击新建
1.在“名称”字段中,输入downgradeHoldCursorsUnderXa
1.在“值”字段中,键入true
1.将类型更改为java.lang.Boolean
1.单击“确定”保存更改
1.选择自定义属性resultSetHoldability
1.在“值”字段中,键入1
1.单击“确定”保存更改
答案来源:https://developer.ibm.com/answers/questions/194821/invalid-operation-result-set-is-closed-errorcode-4/

bakd9h0s

bakd9h0s6#

如果联机集区遗失与Db2的阶段作业,重新启动应用程序可能会修复此问题。如果使用Tomcat,则'testonBorrow'的联机集区特性可能会重新建立与Db2的联机。

相关问题