我的表格包含以下数据
Username Groupname
-------- ---------------
A MAXADMIN
A BUYER
B PURCHASEMANAGER
B FINANCECLERK
输出应如下所示
Username Groupname
-------- ----------------------------
A MAXADMIN,BUYER
B PURCHASEMANAGER,FINANCECLERK
我收到错误ORA-19011: character string buffer too small.
提前致谢
select maxuser.userid,
person.displayname,
maxuser.status,
sod_Report.severity,
sod_Report.scenario,
RTRIM (XMLAGG (XMLELEMENT (e, groupuser.groupname || ',')).EXTRACT ('//text()'),',') groupname
from maxuser,
person,
groupuser,
sod_report
where maxuser.userid=person.personid
and groupuser.userid = maxuser.userid
and sod_report.userid= maxuser.userid
group by maxuser.userid,
person.displayname,
maxuser.status,
sod_Report.severity,
sod_Report.scenario
答案 0 :(得分:1)
错误消息是自我描述性的。
19011,00000,“字符串缓冲区太小”
原因:要求的字符串结果太大而无法返回
操作:取而代之的是
您需要使用DBMS_LOB
包来检索XMLTYPE
数据表。
这是一个解释如何将结果作为LOB的示例。
ORA-19011: Character string buffer too small
答案 1 :(得分:0)
如果我们需要使用4000个以上的字符,我们可以使用以下功能-
select maxuser.userid,
person.displayname,
maxuser.status,
sod_Report.severity,
sod_Report.scenario,
RTRIM (XMLAGG (XMLELEMENT (e, groupuser.groupname || ',')).EXTRACT ('//text()').getClobVal(),',') groupname
.....