oracle如何生成SQLXML格式

How to generate oracle SQL XML format

我想在此结果中以 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 个, 不是按行。

如果您不希望按行处理结果集,则需要聚合多行。处理数字时,可以使用 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<>fiddle here