SQL 方言参考/SQL XML
外观
< SQL 方言参考
ISO 出版物 (ISO/IEC 9075-14) 是 SQL 标准的一部分。它以前被称为 SQLX 或 SQL/XML。它定义了数据类型 XML
和作用于此数据类型以及在该数据类型内创建和处理 XML 对象(元素、属性等)的函数。Oracle 将数据类型表示为 XMLType。
函数 | 描述 | DB2 | SQLite | MonetDB | MySQL | PostgreSQL | Firebird | OpenLink Virtuoso | Oracle | MSSQL |
---|---|---|---|---|---|---|---|---|---|---|
版本 | 支持的软件版本 | V9 | N/A | V11+ | 计划中 | 8.3+ | N/A | 3.5-4.x | 9-10x | 专有 XML 扩展 |
XMLElement() | 创建 XML 元素 | XMLElement() | N/A | xmlelement() | 计划中 | xmlelement() | N/A | XMLElement() | XMLElement() | .query()[1] |
XMLForest() | 从传入的组件创建 XML 片段。 | XMLForest() | N/A | xmlforest() | xmlforest() | 计划中(补丁存在) | N/A | XMLForest() | XMLForest() | FOR XML 子句[2] |
XMLColAttVal() | 创建 XML 片段,然后扩展结果 XML,使每个 XML 片段具有名为“column”的属性,并带有“name”属性。 | N/A | N/A | 计划中 | 计划中 | N/A | XMLColAttVal() | XMLColAttVal() | FOR XML 子句[2] | |
ExtractValue() | 以 XML 实例和 XPath 表达式作为参数,并返回结果节点的标量值。 | N/A | N/A | 计划中 | 计划中 | N/A | ExtractValue() | ExtractValue() | .value()[3] | |
XMLTransform() | 以 XML 实例和 XSL 样式表作为参数,样式表本身是 XML 实例的一种形式。它将样式表应用于实例并返回 XML。 | N/A | N/A | 计划中 | 计划中 | N/A | XMLTransform() | XMLTransform() | N/A[4] | |
XMLSequence() | 接受输入,并返回 XML 中顶层节点的 varray,或者为游标的每一行返回一个 XMLSequence 类型和一个 XML 文档。 | N/A | xmlsequence() | 计划中 | 计划中 | N/A | XMLSequence() | XMLSequence() | .nodes()[5] | |
XMLConcat() | 接受一系列 XML 实例作为输入,为每一行连接一系列元素,并返回连接后的系列。 | XMLConcat | N/A | N/A | 计划中 | 计划中(补丁存在) | N/A | XMLConcat() | XMLConcat() | N/A[6] |
UpdateXML() | 以 XML 实例和 XPath 值对作为参数,并返回包含更新值的 XML 实例。 | N/A | N/A | 计划中 | 计划中 | N/A | UpdateXML() | UpdateXML() | .modify()[7] |
- ↑ MSSQL 2005 及更高版本的
xml
数据类型.query()
方法执行此函数。 - ↑ a b MSSQL 2000 及更高版本的 SQL
SELECT
语句的FOR XML
子句执行类似的功能。 - ↑ MSSQL 2005 及更高版本的
xml
数据类型.value()
方法执行此函数。 - ↑ 在 MSSQL 2005 及更高版本中,
xml
数据类型和 SQLCLR 可用于创建模拟此功能的函数/过程。 - ↑ MSSQL 2005 及更高版本的
xml
数据类型.nodes()
方法执行此函数。 - ↑ 在 MSSQL 2005 及更高版本中,
+
字符串连接运算符可以与xml
数据类型实例到字符数据类型的显式转换一起使用,以模拟此功能。 - ↑ MSSQL 2005 及更高版本的
xml
数据类型.modify()
方法使用 XML DML 执行此函数。