如何从常规 SQL 查询中输出 XML?
Posted
技术标签:
【中文标题】如何从常规 SQL 查询中输出 XML?【英文标题】:How to output XML from a regular SQL query? 【发布时间】:2014-04-18 18:07:20 【问题描述】:Oracle 版本 11g。我在 PL/SQL 过程中有一个有效的 SQL 查询。获取此查询和输出 XML 的最简单方法是什么,或者指定元素名称,或者从查询列中获取它们?我对是否使用 DBMS_XMLGEN、XMLQuery 或 SQLX 感到困惑。在 Oracle 中执行此操作的规范方法是什么?
谢谢
【问题讨论】:
dbms_xmlgen 应该可以工作。你试过了吗? 查看此链接***.com/questions/14466485/… 【参考方案1】:检查生成 XML http://docs.oracle.com/cd/B19306_01/appdev.102/b14259/xdb13gen.htm#i1029583 的 SQL 函数。例如:
SELECT
XMLRoot(
XMLElement(
"employees",
XMLAgg(
XMLElement("employee",
XMLConcat(
XMLElement(
"name",
e.name
),
XMLElement(
"surname",
e.surname
)
)
)
)
), VERSION '1.0', STANDALONE YES
).getClobVal() INTO retval -- useful if you want to export it outside oracle
FROM employees e
应该返回例如:
<?xml version="1.0" standalone="yes"?>
<employees>
<employee>
<name>Jan</name>
<surname>Kowalski</surname>
</employee>
<employee>
<name>Tomasz</name>
<surname>Nowak</surname>
</employee>
</employees>
【讨论】:
谢谢!迟到总比不到好。以上是关于如何从常规 SQL 查询中输出 XML?的主要内容,如果未能解决你的问题,请参考以下文章
如何从以 BLOB 类型存储在列中的 XML 中提取数据(通过 SQL 查询)
如何将 PL/SQL 的输出(XML)存储在 oracle 表中
SQL Server 如何使用 WHILE 查询从多个结果中输出一个表结果