首页 > 解决方案 > 如何生成 oracle SQL XML 格式

问题描述

我想在这个结果中生成 XML 格式的 Oracle SQL。我的查询如下:

Select xmlelement(“main”,xmlelement(“id”,id)) from tableA

<main>
  <id>1</id>
  <id>2</id>
</main>

但我总是得到这个结果

<main>
  <id>1</id>
</main>
<main>
  <id>2</id>
</main>

请帮忙谢谢

编辑:每个执行查询我只需要 1 个,而不是按行。

标签: sqlxmloracleoracle10g

解决方案


如果您不希望每行处理结果集,则需要聚合多行。处理数字时,可以使用聚合函数,如SUMMINMAXAVG等;对于字符串,您可以使用该LISTAGG函数;但对于 XML 数据,您将需要以下XMLAGG功能:

SELECT XMLELEMENT(
         "main",
         XMLAGG(
           XMLELEMENT("id",id)
         )
       ) AS xml
FROM   tableA

其中,对于您的示例数据:

CREATE TABLE tableA ( id ) AS
SELECT 1 FROM DUAL UNION ALL
SELECT 2 FROM DUAL

输出:

| XML |
| :-------------------------------- |
| <main><id>1</id><id>2</id></main> |

db<>在这里摆弄


推荐阅读