
关掉并行。
语句里没写并行提示的话,检查对象的degree属性(字符串类型),trim(degree)不为’0’和’1’的就是说明对象上开启了并行属性。
评论
有用 0发现是wm_concat这个函数的问题
select wm_concat(BM_DO_TRAN_RALA.SEQ_ID) as order_ids
from BM_DO_TRAN_ITEM, BM_DO_TRAN_RALA, BM_DO_TRAN, bm_do_depart, BM_DO
where BM_DO_TRAN_ITEM.id = BM_DO_TRAN_RALA.trans_id
AND BM_DO.DO_ID = BM_DO_TRAN_RALA.DO_ID
AND BM_DO_TRAN.DO_ID = BM_DO_TRAN_RALA.DO_ID
AND BM_DO_TRAN_RALA.DO_ID = BM_DO_TRAN_ITEM.DO_ID
and BM_DO_TRAN_RALA.Plan_id is null
AND BM_DO_TRAN_ITEM.IS_INNER = ‘1’
AND BM_DO_TRAN_RALA.DEPART_NO IS not NULL
and BM_DO_TRAN_RALA.DEPART_ID = bm_do_depart.SEQ_ID
–加入合单条件
and BM_DO_TRAN_RALA.CARRIER_NO = ‘1500102964’
and (BM_DO_TRAN_ITEM.start_com = ‘0002’ or ‘0002’ = ‘0000’)
and BM_DO_TRAN_RALA.IS_CHARTERED in (‘0’, ‘1’)
AND (BM_DO_TRAN_ITEM.TRANS_TYPE = ‘01’ OR ‘01’ IS NULL)
AND BM_DO_TRAN_ITEM.REVERSE_FLAG = ‘0’
and BM_DO_TRAN_ITEM.DELIVER_TIME between
to_date(‘2021-04-01’, ‘YYYY-MM-DD’) + 3 / 24 AND
to_date(‘2021-04-21’, ‘YYYY-MM-DD’) + 3 / 24
and BM_DO_TRAN_RALA.DEPART_NO is not null
and BM_DO_TRAN.SERVICE_ADDRESS is not null
GROUP BY BM_DO_TRAN_RALA.DEPART_NO,
BM_DO_TRAN.SERVICE_ADDRESS,
BM_DO_TRAN_ITEM.START_COM,
BM_DO_TRAN_ITEM.TRANS_TYPE,
trunc(BM_DO_TRAN_ITEM.DELIVER_TIME - 3 / 24)

评论
有用 0去掉wm_concat这一段,整个SQL就正常了?
评论
有用 0ok。
那问题根源,就是wm_concat导致的。根据报错,可以推出你的库是11g的,因为该函数在10g返回varchar2,在11g才返回clob。
而在12c之后,该内置函数就无法使用了,故而建议你们尽早将其改为用listagg函数来替代。
评论
有用 0
墨值悬赏



