java - 在 DB2 中执行更新查询的 Java 程序显示 SqlSyntaxErrorException
问题描述
我正在尝试使用 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 代码时,它失败了。
请提供您对为什么更新对我不起作用的看法。
解决方案
当我使用调试模式检查时,我发现我在我的 java 类中调用了错误的方法名称来执行查询。对不起,是我的错。(即,由于这两种方法名称都不太相似。)
推荐阅读
- c# - 当长度低于padleft的长度时,Padleft不在字符串中添加零?
- python - 在 y-achse 上找不到标签
- react-native - React Native 的“Slingshot”样式 UI 控件
- java - 编译为在 Java 6 上运行但在 Java 8 JVM 上运行的应用程序与在 Java 8 上编译的相同 App 之间的差异
- python - pip 是否将软件包安装到我的 conda 环境中?
- python - 在 SQL For 循环中迭代数组列
- java - Java:如何以用户身份执行外部命令?
- git - git push,现在我有一个分离的头
- javascript - HTTP GET Parameters not getting constructed by Angular 7.2 on IE 11
- c++ - 在 Qt 中将 QStringList 项目添加到 QComboBox 时遇到问题