Oracle Database 11g 企业版版本 11.2.0.2.0 - 64 位生产版。
我有一个以下格式的表格。
Name Department
Johny Dep1
Jacky Dep2
Ramu Dep1
我需要以下格式的输出。
Dep1 - Johny,Ramu
Dep2 - Jacky
我尝试过“LISTAGG”功能,但有 4000 个字符的硬性限制。由于我的数据库表很大,因此无法在应用程序中使用。另一种选择是使用
SELECT CAST(COLLECT(Name)
但我的框架允许我只执行选择查询,而不执行 PL/SQL 脚本。因此,我找不到任何方法来使用 COLLECT 命令所需的“CREATE TYPE”命令创建类型。
有没有其他方法可以使用选择查询来实现上述结果?
您应该添加 GetClobVal 并且还需要 rtrim,因为它将在结果末尾返回分隔符。
SELECT RTRIM(XMLAGG(XMLELEMENT(E,colname,',').EXTRACT('//text()')
ORDER BY colname).GetClobVal(),',') from tablename;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)