![](/img/trans.png)
[英]getGeneratedKeys() after PreparedStatement.executeBatch()
[英]PreparedStatement executeBatch
我正在嘗試使用准備好的語句的executeBatch功能。 在返回的數組中,-2中的所有值。 誰能告訴我該值的含義是什么?
索引0處的值為= -2
索引1的值為= -2
索引2的值為= -2
索引3的值為= -2
索引4的值為= -2
索引5的值為= -2
在數據庫中,所有行均已正確插入。
謝謝SD
這意味着SUCCESS_NO_INFO
從java.sql.Statement中:
/**
* The constant indicating that a batch statement executed successfully
* but that no count of the number of rows it affected is available.
*
* @since 1.4
*/
int SUCCESS_NO_INFO = -2;
您可以使用這些常量來檢查何時獲得所需的響應。 以您的情況看來,所有呼叫均已成功。 但是,沒有其他信息可以返回(例如:受影響的行)
它還取決於您使用的數據庫版本。 如果得到的-2表示SUCCESS_NO_INFO,則必須使用Oracle 11g。 Oracle 11g的一個問題是,即使沒有行更新,它仍將返回-2。 或者,如果沒有刪除任何行,它將仍然返回-2。
在Oracle 12c中,executeBatch的響應得到增強。 就像您觀察到-2或-3常數數組一樣。 -2用於成功執行,-3用於失敗。 現在使用12c,它是一個整數數組,實際行受sql語句影響。 例如[2,3,0,1,10 ...]。 告訴兩行的第一個索引受到執行第一個sql的影響,第二個sql受到影響的3行,依此類推...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.