Postgres中的OPENXML

编程入门 行业动态 更新时间:2024-10-23 11:29:04
本文介绍了Postgres中的OPENXML的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

SQLServer具有一个非常有用的功能,称为 OPENXML 。它的工作原理是这样的:

SQLServer has a very useful function called OPENXML. It works is used like this:

DECLARE @idoc int DECLARE @doc varchar(1000) SET @doc =' <ROOT> <Customer CustomerID="VINET" ContactName="Paul Henriot"> <Order CustomerID="VINET" EmployeeID="5" OrderDate="1996-07-04T00:00:00"> <OrderDetail OrderID="10248" ProductID="11" Quantity="12"/> <OrderDetail OrderID="10248" ProductID="42" Quantity="10"/> </Order> </Customer> <Customer CustomerID="LILAS" ContactName="Carlos Gonzlez"> <Order CustomerID="LILAS" EmployeeID="3" OrderDate="1996-08-16T00:00:00"> <OrderDetail OrderID="10283" ProductID="72" Quantity="3"/> </Order> </Customer> </ROOT>' --Create an internal representation of the XML document. EXEC sp_xml_preparedocument @idoc OUTPUT, @doc -- Execute a SELECT statement that uses the OPENXML rowset provider. SELECT * FROM OPENXML (@idoc, '/ROOT/Customer',1) WITH (CustomerID varchar(10), ContactName varchar(20))

结果:

CustomerID ContactName ---------- -------------------- VINET Paul Henriot LILAS Carlos Gonzlez

有人知道Postgres的替代方法吗?

Does someone know of an alternative for Postgres?

推荐答案

我确定可以改进此代码,但这似乎在Postgres中返回与在SQL Server中发布的代码相同的结果。

I'm sure this code can be improved, but this appears to return the same result in Postgres as the code you posted does in SQL Server.

WITH test_xml(data) AS (VALUES ('<ROOT> <Customer CustomerID="VINET" ContactName="Paul Henriot"> <Order CustomerID="VINET" EmployeeID="5" OrderDate="1996-07-04T00:00:00"> <OrderDetail OrderID="10248" ProductID="11" Quantity="12"/> <OrderDetail OrderID="10248" ProductID="42" Quantity="10"/> </Order> </Customer> <Customer CustomerID="LILAS" ContactName="Carlos Gonzlez"> <Order CustomerID="LILAS" EmployeeID="3" OrderDate="1996-08-16T00:00:00"> <OrderDetail OrderID="10283" ProductID="72" Quantity="3"/> </Order> </Customer> </ROOT>'::XML) ) SELECT unnest((xpath('//Customer/@CustomerID', test_xml.data))), unnest((xpath('//Customer/@ContactName', test_xml.data))) FROM test_xml

更多推荐

Postgres中的OPENXML

本文发布于:2023-10-17 13:07:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1501004.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Postgres   OPENXML

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!