我刚刚使用 Spring Batch 框架创建了一个批处理作业,但我没有运行 CREATE SQL 的数据库权限。当我尝试运行批处理作业时,我在框架尝试创建 TABLE_BATCH_INSTANCE 时遇到了错误。我尝试禁用
<jdbc:initialize-database data-source="dataSource" enabled="false">
...
</jdbc:initialize-database>
但是在我尝试之后我仍然遇到错误
org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [SELECT JOB_INSTANCE_ID, JOB_NAME from BATCH_JOB_INSTANCE where JOB_NAME = ? and JOB_KEY = ?]; nested exception is java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
无论如何都可以禁用SQL,我只是想测试我的读写器和处理器是否正常工作。
原文由 Einn Hann 发布,翻译遵循 CC BY-SA 4.0 许可协议
Spring Batch 使用数据库为其恢复/重试功能保存元数据。
如果您不能在数据库中创建表,那么 您必须禁用此行为
如果您可以创建批处理元数据表但不能在运行时创建,那么您可以 手动创建它们