我正在运行一个非常简单的查询,并尝试将结果提取到文本文件中。整个查询基本上就是下面的内容,我从一张桌子中选择所有内容,其中一条标准将数据限制为一个月的价值。它提取了大约1.2 gig之后会出现此错误。除了提取较小的日期范围之外,还有什么方法可以解决这个问题吗?我试图提取几年的数据,所以如果我一次只能得到它几天就需要大量的手工工作。
我目前正在使用DB2查询工具的免费试用 - Razor SQL如果有所作为,我可以购买不同的软件,如果它会有所帮助。我正在尝试使用IBM的工具但由于某种原因它在下载过程中冻结,所以我仍然在努力。我已经搜索过这个错误,但我看到的一切似乎都比我正在做的要复杂得多,我无法判断它是否适用。提前谢谢。
select *
from MyTable
where date_col between date '2014-01-01' and date '2014-01-31'
答案 0 :(得分:5)
我偶然发现了这个错误,发现它与db2jcc.jar(类型4)驱动程序有关。
摘录:如果结果集中没有项目(或以开头为单位),则结果集会自动关闭,因此会关闭异常。建议是在应用程序中处理它,也许在我的情况下,我开始检查if(rs.next())
但是否则,有一个解决方法。查看下面的源代码链接,了解如何将某些属性设置为数据源并避免异常。
资料来源: "Invalid operation: result set is closed" error with Data Server Driver for JDBC
答案 1 :(得分:1)
在我的情况下,我错过了WAS中的一些属性,添加 allowNextOnExhaustedResultSet 后问题得到解决。
1.登录WebSphere Application Server管理控制台。
2.选择资源> JDBC>数据源> Application Center DataSource名称>自定义属性,然后单击“新建”。
3.在Name字段中,输入allowNextOnExhaustedResultSet。
4.在“值”字段中,键入1。
5.将类型更改为java.lang.Integer。
6.单击“确定”。
有时您还需要检查是否存在 resultSetHoldability 属性。详情请参阅here。
答案 2 :(得分:0)
使用Integer类型创建属性,它对我有用:
答案 3 :(得分:0)
我在WAS 7上遇到了同样的问题,所以我必须在管理控制台上添加和更改一些。
此TeamWorksRuntimeException异常应通过应用APAR JR50863来修复,APAR JR50863可在BPM V8.5.5之上使用或包含在BPM V8.5更新包6中。 对于APAR无法解决问题的情况,请尝试以下解决方法:
答案 4 :(得分:0)
如果连接池失去了与Db2的会话,则重新启动应用程序可能会解决该问题。如果使用Tomcat,则“ testonBorrow”的连接池属性可能会重新建立与Db2的连接。