oracle中WMSYS.WM_CONCAT 函数关系的列出现乱码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中WMSYS.WM_CONCAT 函数关系的列出现乱码相关的知识,希望对你有一定的参考价值。

oracle中WMSYS.WM_CONCAT 函数去查的

使用
SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = \'NLS_CHARACTERSET\';
看看你的字符集选的什么,否则换一个字符集试一试。追问

我的是ZHS16GBK的,这个应该没问题吗?难道要换成UTF-8吗?

追答

那你看看你本机的字符集是否和服务器一致?不要去修改服务器的字符集。

参考技术A 这样就不会乱码了:
select wmsys.wm_concat(to_char(你的字段)) from 你的表

Oracle一列的多行数据拼成一行显示

参考技术A Oracle 提供了两个函数wmsys.wm_concat 和 LISTAGG函数。

      wmsys.wm_concat是Oracle 10g推出的,用来连接字符串,wmsys.wm_concat()中的参数也可以使多个,使用”||”拼接,如下例子:select deptno,wmsys.wm_concat(ename || '-' || job) name from emp group by deptno;

        LISTAGG是Oracle 11g推出的,它的作用和wmsys.wm_concat是一样。基础语法:LISTAGG(XXX,XXX) WITHIN GROUP( ORDER BY XXX)。用法就像聚合函数一样,通过Group by语句,把每个Group的一个字段,拼接起来。非常方便。

        同样是聚合函数,还有一个高级用法:就是over(partition by XXX),也就是说,在你不使用Group by语句时候,也可以使用LISTAGG函数:

使用实例:

结果:

以上是关于oracle中WMSYS.WM_CONCAT 函数关系的列出现乱码的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE 12G 使用函数wmsys.wm_concat问题

oracle plsql wmsys.wm_concat()函数问题

linux下oracle缺少wmsys.wm_concat函数,执行创建视图的时候报错:ORA-00904

Oracle数据库sql 列转字符串行函数WMSYS.WM_CONCAT()

[Oracle]行列转换(行合并与拆分)

Oracle一列的多行数据拼成一行显示