博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle 转pg wmsys.wm_concat 的替代方案
阅读量:2495 次
发布时间:2019-05-11

本文共 854 字,大约阅读时间需要 2 分钟。

oracle 数据库中比较常用到wmsys.wm_concat () 来连接字符串
把多行的数据库连接到一起(默认是用逗号分割的)
oracle 转pg 需要一个替代方案,尽量的应用代码改动小,
pg 还是很能干的,果然找到了一个替代方案
[code]
cyp_app=> \df STRING_AGG
                            List of functions
   Schema   |    Name    | Result data type | Argument data types | Type
------------+------------+------------------+---------------------+------
 pg_catalog | string_agg | text             | text, text          | agg
(1 row)
[/code]
其实呢,pg 提供了一族函数来处理,这种所谓的聚集操作,pg 还对这些函数做了扩展。
arrary_agg ()  string_agg( )  xmlagg()  分别来处理数组,字符串和xml文档。
SELECT array_agg(a ORDER BY b DESC) FROM table;   
SELECT string_agg(a, ’,’ ORDER BY a) FROM table;
SELECT xmlagg(x) FROM (SELECT x FROM test ORDER BY y DESC) AS tab;
补充一点  oracle 的wm_concat 的结果最大是4k  ,pg string_agg 的返回的类型是text ,可以无限长。 至少可以达到1g 的长度。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/133735/viewspace-722601/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/133735/viewspace-722601/

你可能感兴趣的文章
关闭selinx nginx无法使用代理
查看>>
shell 脚本部署项目
查看>>
spring cloud zuul网关上传大文件
查看>>
springboot+mybatis日志显示SQL
查看>>
工作流中文乱码问题解决
查看>>
maven打包本地依赖包
查看>>
spring boot jpa 实现拦截器
查看>>
jenkins + maven+ gitlab 自动化部署
查看>>
Pull Request流程
查看>>
函数式数据处理(一)--流
查看>>
java 流使用
查看>>
java 用流收集数据
查看>>
java并行流
查看>>
CompletableFuture 组合式异步编程
查看>>
mysql查询某一个字段是否包含中文字符
查看>>
Java中equals和==的区别
查看>>
JVM内存管理及GC机制
查看>>
Java:按值传递还是按引用传递详细解说
查看>>
Java中Synchronized的用法
查看>>
阻塞队列
查看>>