Java程序在DB2中执行Update查询时出现SqlSyntaxErrorException。

问题描述 投票:0回答:1

我试图在Selenium项目中使用Java方法运行一个SQL查询。下面的方法 executeQuery 获取sqlQuery作为参数,我打算将其用于INSERT、UPDATE和DELETE。

对于DELETE来说,这个方法工作得很好,但是对于INSERT和UPDATE来说,它给我带来了问题。

我的insert查询。

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';

我的插入查询: 我的更新查询:

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客户端单独运行查询时,它能够成功运行和更新。但是,当我通过java代码运行时,它失败了。

请您提供您的看法,为什么我的更新不能成功。

java sql db2 squirrel-sql
1个回答
0
投票

当我用调试模式检查时,我发现在我的java类中调用了错误的方法名来执行查询。对不起,是我的错误。(即,由于这两个方法名有点相似。)

© www.soinside.com 2019 - 2024. All rights reserved.