sql命令未正确结束--java

sql命令未正确结束--java,java,oracle,Java,Oracle,执行以下代码时出错 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("

执行以下代码时出错

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;");

尝试删除
在sql的末尾

您不应该在sql命令的末尾使用分号


按地区分组\u名称;“应该是”按地区分组\u名称

很有趣的是,你怎么说你是从该代码中得到错误的。您的代码所做的只是创建一个StringBuilder对象。删除结尾处的分号这不是该问题的重复;这不是更新,错误也不是由联接引起的。这只是相同的错误代码…为什么要使用StringBuilder呢?只需使用简单的连接,阅读起来就会更简单,如果所有内容都是字符串文字(如您的问题所示),它甚至会在编译时生成一个字符串