executebatch () подготовленного заявления не возвращает количество добавленных партий - PullRequest
0 голосов
/ 09 ноября 2018

Я пытаюсь добавить пакеты из подготовленного оператора с точностью до 3000 раз, но при вызове executebatch() количество возвращаемых затронутых строк равно 2048, и это происходит для значений, добавляющих операторы пакетного вызова больше 2048. Куда возвращается счет 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 Ответ

0 голосов
/ 09 ноября 2018

Предел по умолчанию для драйвера Teiid для пакетной вставки - 2048.

Из документа :
MaxPreparedInsertBatchSize Максимальный размер подготовленного вставить партию. 2048

Попробуйте настроить свойство MaxPreparedInsertBatchSize на нужный вам размер.

Имейте в виду, это обычно ограничено для обработки памяти.

...