xmlagg拼接大字段问题
出现的问题,以前都是好的,怎么实然不行了,报错如下
找了半天原因,才找到问题所在。
Select
, rtrim(xmlagg(xmlparse(content b.hisid||',' ) order by b.hisid wellformed).getclobval(),',') tt
-- wellformed,wellformed指令,当此指令传入的时候,传入的xml将不再进行xml格式校验
, rtrim(xmlagg(xmlparse(content b.hisid||',' ) order by b.hisid).getclobval(),',') tt
from
(
select -- cast(hisid as varchar(20)) hisid
hisid
from qingzhen_dajiang_zd
where hisid in ('20230314ZX0049')
) b
原因:如果hisid字段类型为nvarchar,则报错。
如果是varchar,则不会报,解决,把nvarchar转为varchar
oracle 19
2024-6-25