mybatis无效字符&oracle实现查找当前用户的所有上级

目录

问题现象:

问题分析:

解决方法:


问题现象:

今天在mybatis的xml文件中,写了一个方法:查找当前部门的所有上级机构记录,结果报错了:无效字符


问题分析:

xml文件中编写,基于 oracle 语句的方法 selectDeptInfoBySId ,用于查找当前部门的所有上级机构。

<select id="selectDeptInfoBySId" resultMap="SecUserResultMap">
    select SID, SIDPARENT, DEPTTYPE, "NAME"
    from sec_user
    start with sid = #{sid,jdbcType=DECIMAL}
    connect by prior sidparent = sid;
  </select>

但是却报错了,错误信息是 无效字符;

一开始我还以为是mybatis无法识别 start 关键字,因为这个词 是白色的 ,而其他Oracle关键字却是黄色字体。

折腾两下,想找其他方法,但是oracle似乎没有其他更好的方法可以实现这个功能了;

于是就开始怀疑也许不是 start 关键字的问题,是语句写得不对,后来在网上查阅相同报错的时候,受到了启发:

原来是因为 这个语句 多了个分号(;)

而 mybatis 的语句中是无法识别 分号(;)


解决方法:

把分号去掉即可,修改为:

<select id="selectDeptInfoBySId" resultMap="SecUserResultMap">
    select SID, SIDPARENT, DEPTTYPE, "NAME"
    from sec_user
    start with sid = #{sid,jdbcType=DECIMAL}
    connect by prior sidparent = sid
  </select>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值