ORA-22922:不存在的 LOB 值

版权声明:转载请注明出处。 https://blog.csdn.net/Yeomer/article/details/82152768

ORA-22922:不存在的 LOB 值

开发中遇到的奇怪问题,写个SQL语句,在plsql中查询没问题,在java中调用会报如
上错误,查了一些资料,没看太明白,只是说WM_CONCAT()函数和group by、
distinct、union关键字联合使用时,会有这个问题。先记录下解决方案。
把wm_concat(字段)换成listagg(字段)within group(order by(字段))

SQL的伪代码:
原SQL(有问题):

SELECT T.*, B.name
        FROM A
       LEFT JOIN (SELECT T.x,TO_CHAR(WM_CONCAT(T.name)) name
                     FROM T
                    GROUP BY x) B
          ON A.x= B.x

修改后:

SELECT T.*, to_char(B.name)
  FROM A
  LEFT JOIN (SELECT T.x,
                   listagg(T.name,',')within group(order by(T.name))T.name
               FROM T
              GROUP BY x) B
    ON A.x = B.x

猜你喜欢

转载自blog.csdn.net/Yeomer/article/details/82152768
LOB