ORA-00904: 标识符无效

事情的起因是这样的,由于跨团队开发,我们team只需要读取对应Orcale库的数据即可,没有其它权限,那么问题来了
mybatis集成Orcale库进行where查询的时候发现一直出现:
java.sql.SQLSyntaxErrorException: ORA-00904: “BRAND”: 标识符无效

解决思路

  1. 一般出现这样问题首先想到的是实体与数据库字段是否对应
  2. 未出现异常,将console打印出来的数据放到Orcale库中跑看是否正常

原因

由于操作Orcale权限有限,仔细核对发现别的团队使用的是Navicat创建的数据库表,那么问题来了,花了一会儿工夫找出原因: 使用Navicat创建Orcale表的时候默认是加双引号的,结果我就一直填坑.

解决方案

方案1: 修改建表语句
//Navicat建表数据样例
CREATE TABLE "FSBSDB_1"."BS_EVALUATE_MANAGE" (
  "evaluateManageId" NUMBER NOT NULL
)
//修改为
CREATE TABLE "FSBSDB_1"."BS_EVALUATE_MANAGE" (
  evaluateManageId NUMBER NOT NULL
)
方案2:  由于操作权限有限,修改Myabtis的mapper文件
<select id="findWeeksByMonths"  parameterType="xxx" resultType="xxx">
        select * from PR_FA_ALL m
        <where>
            <if test="geo != null"> and "geo" = #{geo}</if>
            <if test="subgeo != null"> and "subgeo" = #{subgeo}</if>
            <if test="segment != null"> and "segment" = #{segment}</if>
            <if test="brand != null"> and "brand " = #{brand}</if>
            AND TO_CHAR(to_date(m."month",'yyyy-MM'),'yyyy-MM') BETWEEN TO_CHAR(to_date(#{startTime},'yyyy-MM'),'yyyy-MM')
            AND TO_CHAR(to_date(#{endTime},'yyyy-MM'),'yyyy-MM')
        </where>
        ORDER BY TO_CHAR(to_date(m."month",'yyyy-MM'),'yyyy-MM') ASC
    </select>

记录自己的Orcale的学习踩坑过程

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值