这个batchupdateException是什么意思?
-
24-10-2019 - |
题
我正在从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
不隶属于 StackOverflow