ORA-22922: 不存在的 LOB 值解决方法

 时间:2026-02-18 16:49:35

1、问题原因,出现这个错误很多时候是使用了wmsys.wm_concat的同时使用了group ,distinct 或者union,本来两者没有问题,问题在于:1.Oracle Database 10g Enterprise Edition Release 10.2.0.5.0以后的版本wmsys.wm_concat查询出的是LOB类型;2.oralce的SQL语句中若查询了LOB字段是不能使用distinct,union,和group by等关键字的。

2、下面就一个例子说明,这个例子是asp.net调用oracle存储过程,出现ORA-22922: 不存在的 LOB 值错误。

ORA-22922: 不存在的 LOB 值解决方法

3、根据第一点分析的原因,LOB字段是不能使用distinct,union,和group by等关键字的,经过检查确实有这种情况

ORA-22922: 不存在的 LOB 值解决方法

4、将sql脚本中的to_char(wmsys.wm_concat(字段))切成陈listagg(字段, ',') within group(order by 字段) 即可。

5、再次查询,问题解决,可以正常查询到数据。

6、还有一种解决方法,就是原来使用这样的写法to_char(wm_concat(字段)) as 别名,改成wm_concat(to_char(字段)) as 别名也是可以的。

7、另外一个解决方法就是自己写一个列转行的函数,不使用系统的函数wm_concat,也是可以的。

  • linux查找文件中的关键字
  • notepad++怎么将界面语言设置为中文
  • 怎么查看oracle数据修改记录
  • notepad自动换行
  • 清空表数据sql
  • 热门搜索
    国内旅游攻略 深圳 旅游 贵州旅游线路 旅游管理论文 中国水上旅游网 黄山旅游路线 去张家界旅游 赣州旅游景点大全 新疆旅游报价 旅游项目策划书