sql - PostgreSQL 中的 Oracle EXTRACT xml
问题描述
我正处于从 Oracle 迁移到 PostgreSQL 的过程中,我遇到了这样的问题:
RTRIM(XMLAGG(XMLELEMENT(e,'WZ-'||C.docnum,'; ')
.EXTRACT('//text()') ORDER BY C.docnum).GetClobVal(),'; ') As x
如何在 PostgreSQL 上转换它?提前致谢
解决方案
据我所知,这XMLAGG
只是因为 Oraclelistag()
无法处理大于 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
推荐阅读
- javascript - 反应空的 JSX 表
- r - 清理很长的公司名称列表 - 在 data.table 的每一行上应用函数
- javascript - 禁用由 tierce 库组件呈现的 HTML 元素,而无需访问 React 中的源代码
- python - 无法加载图像以在自定义数据集上训练模型
- r - 计算 qnorm 值的倒数
- android - 为什么应用程序关闭后 Flutter Android 警报管理器无法在设备中运行?
- docker - Docker 内部的 Docker 通过 -v /var/run/docker.sock:/var/run/docker.sock 和 Docker 内部的卷
- postgresql - 无法连接到 Cloud SQL 代理
- java - java - 如何使用Java中的QueryBuilder从Elasticsearch的字符串中获取带有下划线的值?
- excel - Excel将文本提取到列中