病毒安全知识,电脑网络技术,手工杀毒方法,答疑解决笔记

导航

« dxva2.dllESXi添加双网卡 »

ORA-22922: 不存在的 LOB 值

  “ORA-22922: 不存在的 LOB 值”有时和ORA-01790一起出来,01790是说类型不一致,常见的有wm_concat函数,高版本的Oracle都不再支持wm_concat,wm_concat生成的值的类型是hugeclob,如果与union连用,导致类型可能不一致而报错,因此,解决ORA-01790类型不一致,简单点就是就是加to_char,如to_char(wm_concat(...))。但如wm_concat与distinct连用时后面的值里有空值,就会报ORA-22922,一种解决方法是在wm_concat得出值后,再嵌套一层用to_char,类下:

select to_char(a)
from
(select wm_concat(distinct b) a from ...))

另一种有人说是把to_char加在内层,如wm_concat(to_char(a)),这种应该对加distinct的无用,我用了照样报错,最终我是换了listagg,只是listagg不能去重,如果要用listagg去重,简单的说就是先用distinct去完重,再用listagg合并转行。还有其他listagg的去重方法,这里就不多说了。


>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/2187.html

发表评论(无须注册,所有评论在审核通过后显示):

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  • 微信订阅号
    微信订阅

最新发表

最新评论及回复

本站出现的所有广告均不代表本人及本站观点立场 | 关于我 | 网站地图 | 联系邮箱 | 返回顶部
Copyright 2008-2020 www.stormcn.cn. All Rights Reserved. Powered By Z-Blog.闽ICP备09000343号

闽公网安备 35010202000133号