【发布时间】:2017-05-03 21:28:00
【问题描述】:
我有代码可以批量插入到 SqlServer 或 Oracle 表中。我如何告诉 JDBC
A) 如果其中一个插入语句失败,请继续执行
B) 告诉我哪一个有问题
sql.withBatch("""Insert Into ${job.table}($columnNames)Values(${values})""") { stmt ->
data.each{ Map<String, String> row ->
stmt.addBatch(newMap)
}
}
目前,如果其中一行有问题,它会成功插入之前的所有内容,然后停止插入行。它会告诉我错误消息,但不会告诉我是什么数据导致错误。 java 或 groovy 中的解决方案都可以。
我的问题和其他的不一样。他的问题特别是避免插入重复项。我需要防止批处理失败,因为插入因任何原因而失败。如果解决方案与 sql 相关,我需要 Tsql 和 PL/SQL 解决方案(另一篇文章特定于 postgresql)
【问题讨论】: