【问题标题】:sql command not ended properly -- java [duplicate]sql命令未正确结束-java [重复]
【发布时间】: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 时产生一个字符串。

标签: java oracle


【解决方案1】:

尝试删除 sql 末尾的 ;

【讨论】:

  • 分号是问题
【解决方案2】:

你的 sql 命令的末尾不应该有分号,

GROUP BY region_name;" should be " GROUP BY region_name

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    相关资源
    最近更新 更多