使用JDBCBatchItemWriter调用Oracle Procedure会得到EmptyResultDataAccessException

时间:2017-05-25 17:55:44

标签: spring-batch

我在Spring Batch中使用基于Java的配置。我正在调用一个存储过程" writer.setSql(" call proc(:_ name)");" 数据将通过该过程插入。但是,我得到例外" <<<<<<<<<

感谢

注意:我正在跳过" Exception.class"在我的步骤。

2 个答案:

答案 0 :(得分:1)

问题是由JDBCBatchItemWriter的更新声明引起的。 proc不会像sql语句那样返回受影响的no.of行。 java代码抛出更新计数的异常为0.上述问题的解决方案是将assertUpdates设置为False“writer.setAssertUpdates(false)”。 但是,问题仍然存在于用于执行DB对象(如过程或函数)以及如何管理事务的最佳编写器。

请参阅以下网址的源代码: http://grepcode.com/file/repo1.maven.org/maven2/org.springframework.batch/spring-batch-infrastructure/3.0.0.RELEASE/org/springframework/batch/item/database/JdbcBatchItemWriter.java

答案 1 :(得分:0)

我使用Java配置。设置编写器以避免“断言更新”完成工作。

writer.setAssertUpdates(false);