簡體   English   中英

這個BatchUpdateException是什么意思?

[英]What does this BatchUpdateException mean?

我從stmt.executeBatch()語句中獲取此BatchUpdateException:

BatchUpdateException: A resultset was created for update

互聯網上沒有關於此異常消息的任何信息。 這是什么意思? 除了存儲過程失敗之外,回溯不包含任何有用的內容。

我將此消息解釋為您通過addBatch()添加的SQL語句生成了ResultSet ,這意味着它不是您正常的INSERTUPDATEDELETE語句。

應該返回結果的語句不能使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM