XML转换成数据表
在数据库中将XML转换成数据表,xml格式如下:
<DocumentElement>
<OrderInfo>
<SaleOrderCode>Cc021201008260001-121</SaleOrderCode>
<SaleDate>2014-03-13</SaleDate>
<CargoName>测试商品</CargoName>
<BarCode>sxh114</BarCode>
<Amount>1</Amount>
<CityName>上海</CityName>
<Consignee>王五</Consignee>
<ConsigneeAddress>上海市徐汇区虹桥路XXX号</ConsigneeAddress>
<ConsigneeMP>13912345678</ConsigneeMP>
<ConsigneePhone>021-56565656</ConsigneePhone>
<ConsigneePostNO>200030</ConsigneePostNO>
<Payment>2555</Payment>
<CustomMemo>节假日可送</CustomMemo>
<OrderDescribe>《时尚伊人》一份</OrderDescribe>
<objID>208f3b696af9453e89170b6a7b2992ae</objID>
<IndexNO>1</IndexNO><CustomID />
<SellingPlatform />
<OldPrice>0</OldPrice>
<DeclaredValue>0</DeclaredValue>
<OrderAmount>0</OrderAmount>
</OrderInfo>
<OrderInfo>
...
</OrderInfo>
</DocumentElement>
此时需要采用OPENXML的方式进行导入。
DECLARE @idoc int
EXEC sp_xml_preparedocument @idoc OUTPUT, @xml
SELECT * INTO #dtImportMemberOrder
FROM OPENXML(@idoc,'/DocumentElement/OrderInfo', 2) --节点
with (objID CHAR(32),
IndexNO int,
SaleOrderCode VARCHAR(200),
SaleDate char(10),
CargoName NVARCHAR(250),
BarCode VARCHAR(40),
Amount INT,
CityName NVARCHAR(20),
Consignee nvarchar(20),
ConsigneeAddress NVARCHAR(150),
ConsigneeMP NVARCHAR(50),
ConsigneePhone NVARCHAR(50),
ConsigneePostNO NVARCHAR(10),
Payment DECIMAL(18,2),
CustomMemo NVARCHAR(300),
OrderDescribe NVARCHAR(200),
CustomID NVARCHAR(50),
OrderAmount DECIMAL(18,2),
SellingPlatform CHAR(10),
OldPrice DECIMAL(18,2),
DeclaredValue DECIMAL(18,2)
)
效果如下图:


浙公网安备 33010602011771号