Oracle 11g行字段拼接WMSYS.WM_CONCAT问题Not A CLOB

  该问题是Oracle不同版本中的返回值类型不同造成的。

  该函数在Oracle 11.2.0.1.0版本中返回类型为字符串类型;而在Oracle 11.2.0.4.0版本中返回类型为clob类型;

  在sql语句中,只需要在最外层把查询结果用to_char()函数转换一下即可,示例如下:

select to_char(r.roleids) as roleids,
       to_char(r.roledescs) as roledescs
  from t_um_user u
  left join (select r1.userid,
                    WMSYS.WM_CONCAT(r1.roleid) as roleids,
                    WMSYS.WM_CONCAT(r2.roledesc) as roledescs
               from t_um_r_user_role r1, t_um_role r2
              where r1.roleid = r2.roleid
              group by r1.userid) r
    on u.userid = r.userid
 where u.userid > 0

 

posted @ 2021-09-12 10:35  宇宙小咖  阅读(180)  评论(0)    收藏  举报