如何作为批处理执行时如何查找失败的sql语句

问题描述 投票:0回答:1

我正在批量运行sql插件

statement.executeBatch();

当其中一行失败时,它会抛出BatchUpdateException。

我想知道它失败了哪一行。

例:

 Caused by: java.sql.BatchUpdateException: ORA-02291: integrity constraint (V500.XFK1Employee) violated - parent key not found

在这种情况下,在其父表中找不到EmployeeID,

我插入3行..其中一个由于外键约束而失败,我可以找出哪个EmployeeID无法使用BatchUpdateException插入到SQL中?

这只是一个小例子,我有100个行作为批处理执行

jdbc prepared-statement sqlexception
1个回答
0
投票

希望该链接可以帮助您解决问题 - https://vladmihalcea.com/how-to-find-which-statement-failed-in-a-jdbc-batch-update/

  1. 记录JDBC语句的好方法,datasource-proxyone of the best ways of logging JDBC PreparedStatement(s)
  2. 我们还需要捕获BatchUpdateException并通过调用getUpdateCounts方法找到成功执行的语句数量
© www.soinside.com 2019 - 2024. All rights reserved.