wm_concat替代函数 为什么oracle12c无法使用WM_CONCAT?
为什么oracle12c无法使用WM_CONCAT?
建库时的个选项需要安装,如果没有安装就没有这个函数,也可以不用安装,自己构建一个这样的函数,网上搜索一下,http://zjm16.iteye.com/blog/899941。
WM_CONCAT是oracle的非公开函数,并不鼓励使用,新版本oracle并没有带此函数,需要手工加上。
1、下载三个文件:owmctab.plb 、 owmaggrs.plb 、 owmaggrb.plb
2、用sqlplus登录:sqlplus -logon sys/123 as sysdba
3、执行@C:UsersJOYTRAVELDesktopWMSYS用户owmaggrb.plb
4、如果执行结果报错,说找不到WMSYS用户,那么执行 @C:UsersJOYTRAVELDesktopWMSYS用户owmctab.plb;再执行owmaggrb和owmaggrs。
oracle函数WM_CONCAT分隔符默认为逗号,但为什么有时是
sys.wm_concat是oracle10g才有的函数,之前就没有。
而且这个一直是用逗号做分隔符的,
你说的情况,可能是:
用wm_concat后再用replace进行替换了,将 逗号 替换成 冒号了, 这也是一般的方法。
自己改写了wm_concat的函数,网上有这个函数的原始代码。
oracle中WMSYS.WM_CONCAT函数关系的列出现乱码?
使用SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = "NLS_CHARACTERSET"看看你的字符集选的什么,否则换一个字符集试一试。
oracle行转列函数?
推荐用WM_CONCAT函数SELECT A.STD, WM_CONCAT(A.F3) NEW_RESULFROM (SELECT STD, F3FROM (SELECT STD, F1 F3FROM TABLE_AUNION ALLSELECT STD, F2 F3 FROM TABLE_A) A) AGROUP BY A.STD
oracle语句中如何把一列的值合并为一个值,用逗号隔开?
所有版本的oracle都可以使用wm_concat()函数 。例:select wm_concat(name) as name from user但如果是oracle11g,使用listagg() within group()函数 。例:select listagg(name, ‘,’) within group( order by name) as name from user使用wm_Concat:使用ListAgg:结果:
wm_concat替代函数 wm_concat替代函数listagg listagg函数的用法
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。