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

出错语句:

SELECT 
  T1.CUST_NAME,
  T1.DEPT_NAME,
  T1.PROD_LINE_NAME
FROM (

select T896.CUST_NAME   ,
          TO_CHAR(WM_CONCAT(DISTINCT DEPT_NAME)) DEPT_NAME,
          TO_CHAR(WM_CONCAT(DISTINCT PROD_LINE_NAME)) PROD_LINE_NAME,
         SUM(T1640.SALES_AMOUNT) SALES_AMOUNT   
    from 
         CHITDW.D_CUSTOMER        T896,
         CHITDW.D_PRODUCT         T1052,
         CHITDW.D_DEPARTMENT      T934,
         CHITDW.F_SALES_CUR       T1640
   where 
         T896.CUST_KEY = T1640.CUST_KEY and 
         T1052.PROD_KEY = T1640.PROD_KEY and
         T934.DEPT_KEY = T1640.DEPT_KEY and 
         T934.cadre_name = 'xxx' and 
         T1640.ADJUST_FLAG = 0
  group by
        T896.CUST_NAME
) T1

因为WM_CONCAT的结果为clob,无法直观看到数据,我转为了VARCHAR类型,单独执行里面的子查询是没问题的,加了外层语句就会报错。
然后尝试在最外层转换类型,问题解决:

SELECT 
  T1.CUST_NAME,
  TO_CHAR(T1.DEPT_NAME) DEPT_NAME,
  TO_CHAR(T1.PROD_LINE_NAME) PROD_LINE_NAME
FROM (

select T896.CUST_NAME   ,
          WM_CONCAT(DISTINCT DEPT_NAME) DEPT_NAME,
          WM_CONCAT(DISTINCT PROD_LINE_NAME) PROD_LINE_NAME,
         SUM(T1640.SALES_AMOUNT) SALES_AMOUNT   
    from 
         CHITDW.D_CUSTOMER        T896,
         CHITDW.D_PRODUCT         T1052,
         CHITDW.D_DEPARTMENT      T934,
         CHITDW.F_SALES_CUR       T1640
   where 
         T896.CUST_KEY = T1640.CUST_KEY and 
         T1052.PROD_KEY = T1640.PROD_KEY and
         T934.DEPT_KEY = T1640.DEPT_KEY and 
         T934.cadre_name = 'xxx' and 
         T1640.ADJUST_FLAG = 0 
  group by
        T896.CUST_NAME
) T1
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值