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 執行此函式。