27,579
社区成员
发帖
与我相关
我的任务
分享
--添加句柄
DECLARE @HDOC INT
EXEC SP_XML_PREPAREDOCUMENT @HDOC OUTPUT, @pstrDataXml
--读取xml
SELECT
[VendorPartNumber] ,
[Description] ,
[Details] ,
[Manufacturer] ,
[Price] ,
[ImageName]
FROM OPENXML(@HDOC,N'/ProductCatalog/Item/ItemDetail')
WITH
(
[VendorPartNumber] [varchar] (500) ,
[Description] [varchar] (1000) ,
[Details] [varchar] (1000) ,
[Manufacturer] [varchar] (200) ,
[Price] [varchar] (20) ,
[ImageName] [varchar] (500)
)
--移除句柄
EXEC SP_XML_REMOVEDOCUMENT @HDOC
--导入XML
DECLARE @idoc int
DECLARE @doc varchar(1000)
--sample XML document
SET @doc ='
<root>
<Customer cid= "C1" name="Janine" city="Issaquah">
<Order oid="O1" date="1/20/1996" amount="3.5" />
<Order oid="O2" date="4/30/1997" amount="13.4">Customer was very satisfied
</Order>
</Customer>
<Customer cid="C2" name="Ursula" city="Oelde" >
<Order oid="O3" date="7/14/1999" amount="100" note="Wrap it blue
white red">
<Urgency>Important</Urgency>
Happy Customer.
</Order>
<Order oid="O4" date="1/20/1996" amount="10000"/>
</Customer>
</root>
'
-- Create an internal representation of the XML document.
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
-- Execute a SELECT statement using OPENXML rowset provider.
SELECT *
FROM OPENXML (@idoc, '/root/Customer/Order', 1)
WITH (oid char(5),
amount float,
comment ntext 'text()')
EXEC sp_xml_removedocument @idoc