XQuery (XML Query) 為 W3C 標準,用於查詢、提取 XML 節點與元素,主流資料庫(Oracle、DB2、SQL Server)均支援。區分大小寫。
| 函數 | 用途 | 範例 |
|---|---|---|
XML.exist() | 依搜尋運算式回傳布林值 | SELECT @x.exist('/christmaslist/person[@gift="socks"]') → 1 (真) |
XML.value() | 回傳單一純量值 | SELECT @x.value('/christmaslist[1]/person[1]/@name', 'VARCHAR(20)') → 'betty' |
XML.query() | 回傳 XML 型別實例 | SELECT @x.query('/christmaslist/person') → 回傳所有 person 元素 |
XML.nodes() | 將 XML 拆解為關聯式資料列集 | 配合 CROSS APPLY 將 XML 變數轉為結果集 |
.nodes()、.value()) 直接將 XML 資料插入資料表,無需 OPENXML。優勢:
• 單次資料庫呼叫取代 N 次呼叫。
• 小型 XML 檔案效能顯著優於 OPENXML。
• 程式碼更簡潔、可維護性更高。
初期需適應 XQuery/XPath 語法,但掌握後在繁忙系統中效益顯著。建議從小型 XML 整合開始嘗試,逐步替換傳統 OPENXML 邏輯。