1
我有代码来执行批处理插入到SqlServer或Oracle表中。我怎么能告诉JDBC来
A)一直走,如果insert语句的一个失败
b)通知我哪一个有问题忽略jdbc批处理中的错误语句
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)
这是我的解决方案。我捕获异常,记录它,跳过坏行,并且使用基于UpdateCount的子列表递归。谢谢! – Steve