PostgreSQL中的Oracle提取xml 我正处于从甲骨文到PostgreSQL的迁移过程中,我遇到了类似的问题: RTRIM(XMLAGG(XMLELEMENT(e,'WZ-'||C.docnum,'; ') .EXTRACT('//text()') ORDER BY C.docnum).GetClobVal(),'; ') As x
如何在PostgreSQL上转换它?PostgreSQL中的Oracle提取xml 我正处于从甲骨文到PostgreSQL的迁移过程中,我遇到了类似的问题: RTRIM(XMLAGG(XMLELEMENT(e,'WZ-'||C.docnum,'; ') .EXTRACT('//text()') ORDER BY C.docnum).GetClobVal(),'; ') As x,sql,postgresql,string-aggregation,Sql,Postgresql,String Aggregation,如何在PostgreSQL上转换它? 提前感谢据我所知,这是因为Oracle的listag()无法处理大于4K(或Oracle 12中的32K)的字符串 所以我认为你想要的是一个简单的: string_agg('WZ-'||c.docnum, '; ' order by c.docnum) 如果docnum可以NULL则您可能需要: string_agg(concat('WZ-', c.docnum), '; ' order by c.docnum) 因为concat()将null值视为空
提前感谢据我所知,这是因为Oracle的
listag()
无法处理大于4K(或Oracle 12中的32K)的字符串
所以我认为你想要的是一个简单的:
string_agg('WZ-'||c.docnum, '; ' order by c.docnum)
如果
docnum
可以NULL
则您可能需要:
string_agg(concat('WZ-', c.docnum), '; ' order by c.docnum)
因为
concat()
将null
值视为空字符串(|
将产生null
,如果涉及的任何值是null
)据我所知,这是在使用XMLAGG
仅因为Oracle的listag()
无法处理大于4K(或Oracle 12中的32K)的字符串.
所以我认为你想要的是一个简单的:
string_agg('WZ-'||c.docnum, '; ' order by c.docnum)
如果
docnum
可以NULL
则您可能需要:
string_agg(concat('WZ-', c.docnum), '; ' order by c.docnum)
因为
concat()?不,但是一匹没有名字的马能起作用。感谢您的快速响应:-)一匹没有名字的马是一个传奇!是否尝试使用XPATH
?不,但是一匹没有名字的马能起作用。感谢您的快速响应:-)一匹没有名字的马是一个传奇!