我对 java 世界还是很陌生。我正在开发我的第二个应用程序,它是一个批量更新我公司 SQL 数据库中的时间字段的程序。我能够通过 java 运行查询,并将每个查询行存储在结果集中。问题是结果集的每一行都是一条更新语句。然后我想运行这些结果集行。然而,当我完全清楚这些语句的格式正确并且在 TOAD for oracle 中运行良好时,我一遍又一遍地收到“SQL 命令未正确结束”的错误消息。谁能帮我理解这里发生了什么?我也尝试过批处理并继续收到相同的错误。
这是我的查询的输出行之一的示例,其中表和字段名称已更改。
Update sometable.somefield set COMPLETED_TS ='31-OCT-17 06.00.00.000000000 AM'Where eqact_id ='2559340';
下面您可以看到 SQL 字符串的结尾和 runScript2() 方法。
"\r\n" +
"\r\n" +
"where \"Center\" = S.CODE and S.TIMEZONE_ID = T.ID"; //This String is named SQL1
public void runScript2(){
try {
PreparedStatement statement0 = Connection1.conn.prepareStatement(SQL1);
ResultSet result0 = statement0.executeQuery();
Connection1.conn.setAutoCommit(false);
while(result0.next()) {
PreparedStatement statementq1=Connection1.conn.prepareStatement(result0.getString(1));
statementq1.executeUpdate();
}
Connection1.conn.commit();
}catch (SQLException e1) {
e1.printStackTrace();
}
}
最佳答案
嗯,当我发现问题是我的 result0.getString(1) 行在每行末尾都有一个分号时,我感到又生气又高兴,由于某种原因,Java 不喜欢这样。没有这个他们运行得很好。
我想,生活就是你学习的过程。
关于java - 无法在 Java 中运行多个 SQL 更新语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60724971/