SELECT

CASE

WHEN ('[Param.3]' = 'SELECTED')

THEN (SELECT RTRIM(XMLELEMENT("Rowset", XMLAGG(RW.R ORDER BY RW."ID")), ' ') AS Orders

FROM TMTABLE UL, XMLTABLE('Rowsets/Rowset/Row' PASSING UL.TEXT COLUMNS "ID" NUMBER(19) PATH 'ID', R xmltype path '.') AS RW

WHERE ID BETWEEN '[Param.1]' and '[Param.2]')

WHEN ('[Param.3]' = 'ALL')

THEN (SELECT RTRIM(XMLELEMENT("Rowset", XMLAGG(RW.R ORDER BY RW."ID")) , ' ') AS Orders

FROM TMTABLE UL, XMLTABLE('Rowsets/Rowset/Row' PASSING UL.TEXT COLUMNS "ID" NUMBER(19) PATH 'ID', R xmltype path '.') AS RW)

END AS Orders

FROM

dual

此查询,如果有要合并到单行XML AGG XML行的少数工作正常。但是,如果要合并的XML的行数较高,该查询抛出以下错误:

ORA-19011: Character string buffer too small

什么变化,我需要申请,使这项工作?

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐