Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有办法从executeBatch获取所有错误?_Java_Sql_Jdbc - Fatal编程技术网

Java 有没有办法从executeBatch获取所有错误?

Java 有没有办法从executeBatch获取所有错误?,java,sql,jdbc,Java,Sql,Jdbc,是否有办法从executeBatch获取所有错误 我的意思是,如果我要从一批100个错误中得到10个错误,我怎么能在executeBatch执行中知道所有这些错误?第一个错误将抛出一个停止批处理过程的错误 你可以在文件中看到 批处理更新操作期间发生错误时引发的SQLException的子类。除了SQLException提供的信息外,BatchUpdateException还提供了批更新期间成功执行的所有命令的更新计数,即在错误发生之前执行的所有命令。更新计数数组中元素的顺序与向批处理中添加命令的

是否有办法从
executeBatch
获取所有错误


我的意思是,如果我要从一批100个错误中得到10个错误,我怎么能在
executeBatch
执行中知道所有这些错误?

第一个错误将抛出一个停止批处理过程的错误

你可以在文件中看到

批处理更新操作期间发生错误时引发的
SQLException
的子类。除了
SQLException
提供的信息外,
BatchUpdateException
还提供了批更新期间成功执行的所有命令的更新计数,即在错误发生之前执行的所有命令。更新计数数组中元素的顺序与向批处理中添加命令的顺序相对应

所以这批货就到此为止。将(按顺序)执行故障查询之前的每个“查询”。其余的将被忽略

您始终可以重新创建批处理,因为在包含批处理其余部分的异常中有成功执行计数

编辑:

前面的说法部分是错误的。文档还声明,根据使用的驱动程序,可以执行批处理的其余部分

批处理更新中的某个命令未能正确执行且引发
BatchUpdateException
后,驱动程序可以继续处理批处理中的其余命令,也可以不继续处理

您可以找到错误的语句(以测试确认)

在驱动程序继续处理命令的情况下,任何失败命令的数组元素都是
语句。EXECUTE\u failed


你有没有关于有这种行为的司机的参考资料?Oracle db是否可以使用它?@MozenRath您可能需要阅读相应的,这里有更多或运行一些测试,使用简单的唯一约束在测试表上创建一个批很容易创建一些错误。我已经测试过,并且知道ojdbc驱动程序不具有这种支持。它只是给出了第一个错误。但我很想知道是否有任何特定的驱动程序实现了这一策略。@mozenrath这总是可能的,所以实现了这两种可能性。甚至Oracle也可以在下一个版本中添加它;)如果MS SQL能做到这一点,Oracle不会,PostgreSQL肯定不会。看见