打印的日志sql执行都是正常的 但是 就是报ORA-00979: not a GROUP BY expression

可能是 GROUP BY中不能使用动态参数 或特殊方法

使用 硬编码可以解决问题 


        <if test="statisticsInVo.timeTypeSql!=null and statisticsInVo.timeTypeSql == 'yyyy'">
            TO_CHAR(CARD_TIME, 'yyyy')  ,
        </if>

        <if test="statisticsInVo.timeTypeSql!=null and statisticsInVo.timeTypeSql == 'yyyy-mm'">
            TO_CHAR(CARD_TIME, 'yyyy-mm')  ,
        </if>

        <if test="statisticsInVo.timeTypeSql!=null and statisticsInVo.timeTypeSql == 'yyyy-mm-dd'">
            TO_CHAR(CARD_TIME, 'yyyy-mm-dd')  ,
        </if>

java mybatis代码中使用
GROUP BY
TO_CHAR( CARD_TIME, #{statisticsInVo.timeTypeSql}), 使用参数注入的方式会导致 下面的异常吗
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00979: not a GROUP BY expression

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐