我试图从一个准备好的语句中添加精确到3000次的批,但是什么时候 executebatch()
调用时,返回的受影响行数为2048,对于大于2048的values add batch call语句,会发生这种情况。从哪里算2048是返回,我无法猜测。有人能帮我一下吗。
这是我的代码:
while (resultSet.next()) {
for (int i = 0,j=0; i < noOfColumns && j < noOfColumns; i++) {
//Setting values here for preparedStatement using setString()
}
pstmt.addBatch(); ==> this is called for more than 3000 times
try {
if(++count % batchSize == 0){
updatedCnt=pstmt.executeBatch(); ==> Here batch size is set to 3000 and executebatch returns 2048
successRowCnt = successRowCnt + updatedCnt.length;
}
if (count ==numberofRowsForCloning) {
isResultMatch = false;
break;
}
}
}
1条答案
按热度按时间ni65a41a1#
TEID驱动程序用于批插入的默认限制为2048。
从文件:
maxpreparedinsertbatchsize准备好的插入批的最大大小。2048
尝试配置属性
MaxPreparedInsertBatchSize
你需要的尺寸。请记住,这通常是有限的处理内存。