如果批处理中间发生错误,则Oracle JDBC驱动程序将引发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,我们正在处理数百万条记录,所以我们不能去数据库检查唯一键。
无论如何,如果一条记录失败,批量插入不会失败。
答案 0 :(得分:0)
您要使用App Service提示。 像这样在插入后添加评论。
insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(table_name, unique_index_name) */
(...)
但是,如果您以这种方式插入一百万行,则最好使用sqlldr。