В моем java-коде у меня есть подготовленный оператор ps_temp.
PreparedStatement ps_temp;
// loop
ps_temp.setString(1,'abc');
....
....
ps_temp.addBatch();
// end loop
ps_temp.executeBatch();
Теперь одна из записей в пакете создала ограничение Unique Index, которое в конечном итоге приведет к ошибке ps_temp.executeBatch(). Даже хорошие записи в партии не помещаются в таблицу.
Итак, возможно ли, что если у моей партии есть хорошие и некоторые плохие записи (что может вызвать ограничение целостности), ТОГДА МЕНЬЕ ХОРОШИЕ ЗАПИСИ ВСТАВЛЯЕТСЯ В ТАБЛИЦУ?
Заранее спасибо !! Noman
Для партии записей довольно часто бывает мало плохих. Если вы попытаетесь вставить все записи за один раз, а одна запись не удалась, вся серия вставок будет отклонена. Это ожидается и является основной целью "обработки транзакций".
Обычно для пакетных вставок вы можете использовать два подхода:
1) Зафиксировать после каждой вставки записи → Очень интенсивный процесс.
2) Разделите общие записи на более мелкие "куски" и вставьте в базу данных. Таким образом, только фрагмент, содержащий плохую запись, потерпит неудачу, и в базу данных будут добавлены другие куски.
В качестве альтернативы, если вы не хотите самостоятельно обрабатывать эти вещи, перейдите на рамки. Весенняя партия
В этом случае может быть один из ваших вариантов