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