当前位置: 首页 > 面试题库 >

BatchUpdateException:批处理不会终止

姜嘉良
2023-03-14
问题内容

我有一个处理很大文件并将数据发送到oracle数据库的应用程序(使用Java 6,oracle 9)。

在循环中,我使用PreparedStatement ps并创建了所有使用生成的SQL语句ps.addBatch()

我有一种情况,BatchUpdateException bue在期间将a 抛出ps.executeBatch()。此时,该批处理停止执行。

我希望继续执行批处理,以便随后可以在method中检查失败的更新processUpdateCounts(bue.getUpdateCounts())

关于类BatchUpdateException的Javadoc说:

批处理更新中的命令无法正确执行并且抛出BatchUpdateException后, 驱动程序可能会或可能不会继续 处理批处理中的其余命令。

有没有一种方法可以强制执行连续性,或者我需要更改程序以使其分别执行该语句?


问题答案:

刚刚找到此链接: JDBC批处理更新问题

显然,它说那里

NO WAY 和ORACLE JDBC批处理 第一次失败之后进行

因此,我要逐个发送插入内容。谢谢

(很抱歉,您之前查找的链接看起来不太好)。



 类似资料:
  • 我们的Spring批处理作业在处理输入文件时突然失败。当我试图重新运行批处理作业时,它会抛出以下消息。 02:27:09.088[main]调试O.S.B.C.R.dao.jdbcstepExecutionDAO-在更新StepExecution之前截断长消息,原始消息为:org.springframework.batch.core.jobExecutionException:无法从开始状态重新启

  • 我正在使用spring批处理使用RepositoryItemReader从postgresql DB读取记录,然后将其写入主题。我看到大约有100万条记录需要处理,但它并没有处理所有的记录。我已经将reader的pageSize设置为10,000并且与提交间隔(块大小)相同

  • 批处理 本书展示的几个例子中,ElasticSearch提供了高效的批量索引数据的功能,用户只需按批量索引的格式组织数据即可。同时,ElasticSearch也为获取数据和搜索数据提供了批处理功能。值得一提的是,该功能使用方式与批量索引类似,只需把多个请求组合到一起,每个请求可以独立指定索引及索引类型。接下来了解这些功能。 MultiGetMultiGet操作允许用户通过_mget端点在单个请求命

  • 我有以下工作要处理在一定的时间间隔或特别的基础上。 作业中的步骤如下: 我也想要用户界面,在那里我可以触发一个特别的基础上的工作,而且我应该能够提供参数从用户界面。 我想用Spring batch来完成这个任务,但它更多的是用于读->处理->写之类的工作。这里,在第一步中,我正在生成由第二步读取的数据。我不确定我是否还可以使用Spring batch来实现这个,或者有更好的方法来实现这个。

  • 问题内容: 我是Spring Batch的新手,但遇到了问题。 我正在处理的批处理应用程序从分隔的文本文件中读取和处理行。我已将应用程序配置为使用FlatFileReader来读取带分隔符的文本文件,但问题是正在读取的某些数据中带有双引号。当FlatFileReader遇到单引号时,将引发FlatFileParseException,但是当存在两个双引号时,则不会引发FlatFileParseEx

  • 考虑以下用户情况: 当我执行之前的代码时,预期的结果是我应该得到一个内存不足的异常,因为它是可流动的。阻止长时间订阅请求。最大值项,迭代器将耗尽1 TB的数据,订阅者无法跟上。 为了解决这个问题,我将rebatch请求添加到我的代码中: 当我执行以下代码时,我的预期结果是一切都工作得很好,正如Flowable.rebatch请求的留档所说: 该运算符允许阻止下游通过请求(Long.MAX_值)触发