目录
问题现象:
今天在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>