【问题标题】:BadSqlGrammarException when Spring Batch inserts into BATCH_JOB_EXECUTION当 Spring Batch 插入 BATCH_JOB_EXECUTION 时出现 BadSqlGrammarException
【发布时间】:2020-03-25 14:19:16
【问题描述】:

我正在创建一个从 CSV 文件读取并写入 DB2 数据库的 spring-batch 应用程序。

Spring-boot 版本:2.0.5.RELEASE

<dependency>
    <groupId>com.ibm.db2.jcc</groupId>
    <artifactId>db2jcc</artifactId>
    <version>db2jcc4</version>
</dependency>

当 Spring Batch 尝试插入 BATCH_JOB_EXECUTION 表时,我收到了 BadSqlGrammarException。

原因:org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback;错误的 SQL 语法 [INSERT into BATCH_JOB_EXECUTION(JOB_EXECUTION_ID, JOB_INSTANCE_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, VERSION, CREATE_TIME, LAST_UPDATED, JOB_CONFIGURATION_LOCATION) 值 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)];嵌套异常是 com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL 错误: SQLCODE=-206, SQLSTATE=42703, SQLERRMC=JOB_CONFIGURATION_LOCATION, DRIVER=4.26.14Caused by: org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback;错误的 SQL 语法 [INSERT into BATCH_JOB_EXECUTION(JOB_EXECUTION_ID, JOB_INSTANCE_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, VERSION, CREATE_TIME, LAST_UPDATED, JOB_CONFIGURATION_LOCATION) 值 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)];嵌套异常是 com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL 错误: SQLCODE=-206, SQLSTATE=42703, SQLERRMC=JOB_CONFIGURATION_LOCATION, DRIVER=4.26.14

提前感谢任何有助于解决此问题的支持和指导。

【问题讨论】:

    标签: db2 spring-batch


    【解决方案1】:
    DB2 SQL Error: SQLCODE=-206, SQLSTATE=42703, SQLERRMC=JOB_CONFIGURATION_LOCATION
    

    this,SQLSTATE 42703 表示An undefined column or parameter name was detected。所以很可能是因为BATCH_JOB_EXECUTION 没有JOB_CONFIGURATION_LOCATION 列。

    确保您的批处理相关表的架构与this 相同。

    【讨论】:

    • 嗨 Ken Chan, 表已创建,但缺少 JOB_CONFIGURATION_LOCATION 列。感谢您的回答。
    猜你喜欢
    • 1970-01-01
    • 2013-02-10
    • 1970-01-01
    • 2019-01-25
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 1970-01-01
    相关资源
    最近更新 更多