在 DB2 中执行更新查询的 Java 程序显示 SqlSyntaxErrorException

标签 java sql db2 squirrel-sql

我正在尝试使用 Java 方法为我的 Selenium 项目运行 SQL 查询。下面的方法 executeQuery 获取 sqlQuery 作为参数,我计划将其用于 INSERT、UPDATE 和 DELETE。

对于 DELETE,该方法工作正常,但对于 INSERT 和 UPDATE,它给了我问题。

我的插入查询:

INSERT INTO NSIDE.DOCUMENT_REC (DOCUMENT_ID,RECIPIENT_CODE,DELIVERY_METHOD_CODE,PRINT_METHOD_CODE,TRANSACTION_EVENT_SEQ_NUMB,UPDATED_BY_ID) VALUES('ABCD000011','PC','R','F',1,1);

我的更新查询:

update NSIDE.job_pmar set commit_freq_numb='96',exception_threshold_numb='28',file_name='RCUSOCKEWB',server_path_name='SW9L5CNLMU' where JOB_CODE='ABC0198';

用于查询执行的Java程序:

public void executeQuery(String sqlQuery) { 
    String myUserName = ReadPropertyFile.getInstance().getPropertyValue("DatabaseUserName");
    String myPassword = ReadPropertyFile.getInstance().getPropertyValue("DatabasePassword");
    String dbURL = ReadPropertyFile.getInstance().getPropertyValue("DatabaseURL");
    String username = myUserName;
    String password = myPassword;
    String selectquery = sqlQuery;
    log.debug("Preparing to execute DML Query : "+sqlQuery);
    try (Connection con = DriverManager.getConnection(dbURL,username,password);
         Statement st=con.createStatement()) {
        st.executeUpdate(selectquery);
        /* Load DB2 JDBC Driver */
        Class.forName("com.ibm.db2.jcc.DB2Driver");
        log.info("Successfully executed the DML Query :"+sqlQuery);
    }
    catch (Exception e) {
        log.error(e);
    }
}

当我运行时,它给我以下更新查询错误:

com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=END-OF-STATEMENT;PMAR;JOIN <joined_table>, DRIVER=4.25.13

注意:当我使用 Squirrel SQL Client 单独运行查询时,它能够成功运行和更新。但是,当我运行 java 代码时,它失败了。

请就更新对我不起作用的原因提供您的看法。

最佳答案

当我检查 Debug模式时,我发现我在 java 类中调用了错误的方法名称来执行查询。抱歉,这是我的错误。 (即,因为两个方法名称有点相似。)

关于在 DB2 中执行更新查询的 Java 程序显示 SqlSyntaxErrorException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62318049/

相关文章:

java - 导入java类文本编辑器

java - 在catch block 中捕获异常

两个不同(可能为空)列的 SQL 顺序

sql - 为什么调用大数据量的IBM DB2 SELECT存储过程很慢?

Java作业错误

java - 将属性添加到当前 Java 线程

mysql - 根据 SQL 中的日期计算百分位数

sql - 如何从层次结构中获取所有用户关系的列表?

sql - 使用递归子查询分解的循环检测

SQL DB2 - WHERE 子句中的条件逻辑