[英]What does this BatchUpdateException mean?
我從stmt.executeBatch()語句中獲取此BatchUpdateException:
BatchUpdateException: A resultset was created for update
互聯網上沒有關於此異常消息的任何信息。 這是什么意思? 除了存儲過程失敗之外,回溯不包含任何有用的內容。
我將此消息解釋為您通過addBatch()
添加的SQL語句生成了ResultSet
,這意味着它不是您正常的INSERT
, UPDATE
或DELETE
語句。
應該返回結果的語句不能使用JDBC批量執行。
JDBC教程 (在“處理批量更新例外”標題下)確認了它:
調用方法executeBatch時,如果(1)您添加到批處理中的一個SQL語句生成結果集(通常是查詢)或(2)批處理中的一個SQL語句未成功執行,您將收到BatchUpdateException由於其他原因。
你好像在這里遇到案例1。
批量更新是由數據庫一起處理的幾個插入/更新/刪除語句。 這通常是出於性能原因而完成的。 1x 1000個插件比1000x 1插件快得多。 BatchUpdateException意味着1個(或更多)語句由於違反約束而最常失敗。 您將不得不查看存儲過程以查看它正在執行的操作。 你的dba Mayby可以為你提供更多關於出了什么問題的信息。
我從桌子上扔了一列。 當我試圖將記錄插入該表時,我得到了BatchUpdateException。
運行以下命令后問題得到解決
REORG TABLE TABLE_NAME
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.