我正在从stmt.executebatch()语句中获取此batchupdateException:

BatchUpdateException: A resultset was created for update

Internet没有有关此异常消息的任何信息。这是什么意思?除了存储过程失败之外,Trackback不包含任何有用的东西。

有帮助吗?

解决方案

我将消息解释为您通过 addBatch() 产生了一个 ResultSet, ,这意味着这不是你的正常 INSERT, UPDATE 或者 DELETE 陈述。

应该返回结果的语句不能用JDBC分批执行。

JDBC教程 (在“处理批处理更新例外”标题下)确认:

当您调用方法executeBatch时,如果(1)您添加到批处理中的SQL语句之一会产生结果集(通常是查询)或(2)批处理中的SQL语句之一未成功执行,则将获得batchupdateException。由于其他原因。

您似乎在这里遇到案例1。

其他提示

批处理更新是几个插入/update/delete语句,这些语句由数据库一起处理。这是出于完善原因而做的通常。 1x 1000个插入物比1000x 1插入物快得多。 batchupdateException是指1(或更多)陈述最常见于限制性侵入。您将不得不查看存储的过程,以查看其正在做什么。 Mayby您的DBA可以为您提供有关出了什么问题的更多信息。

我从桌子上删除了一列。当我尝试将记录插入该表时,我将获得batchupdateException。

运行以下命令后,问题解决了

reorg table table_name

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top