开发者社区 问答 正文

oracle 报错 不存在的lob值?报错

这是SQL语句 

SELECT userinfo.id,userinfo.username,userinfo.realname,userinfo.sex,userinfo.MOBILEPHONE,
to_char(userinfo.CREATEDATE, 'yyyy-MM-dd ')CREATEDATE,
to_char(wmsys.wm_concat(roleinfo.ROLENAME)) ROLENAME,
to_char(wmsys.wm_concat(roleinfo.id)) roleid
FROM base_userinfo userinfo
LEFT  JOIN  company_userrole userrole on userrole.userid = userinfo.id
LEFT  JOIN  v_companyrole roleinfo on roleinfo.id = userrole.roleid
AND
roleinfo.iseffect='1'
AND
roleinfo.roletype=#{roleType}
where userinfo.ORGANIZATIONCODE=#{orgCode}
AND
userinfo.iseffect='1' <if test="realName!=null and realName!=''">  and userinfo.realname LIKE '%'||#{realName}||'%' </if> group by userinfo.id,userinfo.username,userinfo.realname,userinfo.sex,userinfo.MOBILEPHONE,to_char(userinfo.CREATEDATE, 'yyyy-MM-dd ')
ORDER BY userinfo.realname
这段SQL我在数据库直接运行是可以查处数据的,但是运行程序时 就会报错,不存在的LOB值,

数据库字段类型 我看了,也不存在LOB类型的 。实体定义的也全部是String类型的,本来查的好好的 突然就报出这个错误来,求教大神是怎么回事。另外 我将roleType这个参数变为2时就可以查处数据。是什么原因

展开
收起
爱吃鱼的程序员 2020-06-10 11:19:36 1225 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    看数据库版本。10.2.0.5以后的Oracle,wm_concat输出CLOB。

    如果是11G,请使用11G专用SQL语法。

    回复 @路路路路路:具体属性请参考你对应版本的SQL文档,这个在Oracle官方可以拿到,你可以看到函数的各种详细说明。对了大神tochar不是转成varchar类型的了?大神谢了请收下我等膝盖
    2020-06-10 11:19:51
    赞同 展开评论