【发布时间】:2018-07-19 12:06:25
【问题描述】:
执行以下代码时出错。
java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束
StringBuilder sb = new StringBuilder();
sb.append("select");
sb.append(" region_name,");
sb.append(" sum(case when SUBCASE_MEASURED = '1'");
sb.append(" AND FE_TYPE = 'ASP'");
sb.append(" AND MONTH = '2018-Jun'");
sb.append(" then 1");
sb.append(" else 0 end) count1,");
sb.append(" sum(case when");
sb.append(" SUBCASE_MEASURED = '1' AND FE_TYPE = 'ASP' AND QUARTER = 'Q2-2018' then 1 else 0 end) count2");
sb.append(" from late_start_conf_dsptch_accu");
sb.append(" GROUP BY region_name;");
【问题讨论】:
-
有趣的是你说你是从那个代码中得到错误的。您的所有代码都在创建一个 StringBuilder 对象。
-
去掉末尾的分号
-
这不是那个问题的重复;这不是更新,错误不是由连接引起的。这只是相同的错误代码...
-
你为什么还要使用 StringBuilder 呢?只需使用简单的连接,阅读起来会更简单,如果一切都是字符串文字,就像你的问题一样,它甚至会在 compile 时产生一个字符串。