如果未创建BATCH_JOB_EXECUTION_CONTEXT,那么我得到的只是:
由以下原因引起:org.springframework.jdbc.BadSqlGrammarException:PreparedStatementCallback;错误的SQL语法[INSERT INTO BATCH_JOB_EXECUTION_CONTEXT(SHORT_CONTEXT,SERIALIZED_CONTEXT,JOB_EXECUTION_ID)VALUES(?,?,?)];嵌套的异常是java.sql.SQLSyntaxErrorException:ORA-00942:表或视图不存在
插入表时会显示上述错误,但是在创建表的时候(由spring batch自动完成)没有显示错误。
我想知道未创建表的原因,所以我可以知道是什么问题(数据库权限,表空间问题...)是否可以将其记录在跟踪中?
有关信息,我正在使用oracle数据库12C和ojdbc8版本12.2.0.1
答案 0 :(得分:2)
Spring Batch不会在数据源中自动创建元数据表。您需要手动对数据库运行tables creation script。
但是,如果使用Spring Boot,可以使用spring.batch.initialize-schema
属性自动创建这些表。此处有更多详细信息:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-initialize-a-spring-batch-database
与这个有类似/相关的问题,我在这里添加以供参考: