关闭

ORACLE ORA22922 不存在的LOB值解决方法

标签: oracle数据库selectsql
8379人阅读 评论(0) 收藏 举报
分类:

出现这个错误很多时候是使用了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等关键字的。

所以出现了以上错误,具体例子如下:

改之前

SELECT
        o.id,
      replace(wmsys.wm_concat(m.prod_id),',','&') product_id , 


FROM t_order  o
inner JOIN hbms_marprod_batch  m ON o.mar_id=m.mar_id
GROUP BY o.id;

改之后的:
SELECT
        o.id,
      (select replace(wmsys.wm_concat(m.prod_id),',','&') from hbms_marprod_batch where m.mar_id=o.mar_id ) product_id , 


FROM t_order  o;

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:9411次
    • 积分:139
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类