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 个,
不是按行。
如果您不希望按行处理结果集,则需要聚合多行。处理数字时,可以使用 SUM
、MIN
、MAX
、AVG
等聚合函数;对于字符串,您可以使用 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
我想在此结果中以 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 个, 不是按行。
如果您不希望按行处理结果集,则需要聚合多行。处理数字时,可以使用 SUM
、MIN
、MAX
、AVG
等聚合函数;对于字符串,您可以使用 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