Драйвер JDBC Oracle выдает исключение BatchUpdateException, если в середине пакета возникает ошибка.Использование NamedParameterJdbcDaoSupport для вставки данных, как показано ниже
getJdbcTemplate().batchUpdate(query, dataList, 1000,
new ParameterizedPreparedStatementSetter<MyObject>() {
@Override
public void setValues(final PreparedStatement ps, final MyObject bucket) throws SQLException {
ps.setString(1, bucket.getInit());
ps.setString(2, bucket.getNbr());
}
});
Я работаю в BatchUpdateException из-за ограничения уникального ключа, мы обрабатываем миллионы записей, поэтому мы не можем перейти в базу данных для проверки уникального ключа.
В любом случае пакетная вставка не завершится с ошибкой, если одна запись не удалась.