SQL SERVER 读取 XML 数据
1.需要读取的XML 格式:
1 <?xml version="1.0" standalone="yes"?> 2 <DocumentElement> 3 <hsData> 4 <HS编码>9803009000</HS编码> 5 <商品中文名>其他定制型软件</商品中文名> 6 <海关监管条件 /> 7 <检验检疫类别 /> 8 <版本号 /> 9 </hsData> 10 <hsData> 11 <HS编码>9803003000</HS编码> 12 <商品中文名>定制型应用软件</商品中文名> 13 <海关监管条件 /> 14 <检验检疫类别 /> 15 <版本号 /> 16 </hsData> 17 <hsData> 18 <HS编码>2922399020</HS编码> 19 <商品中文名>灭藻醌</商品中文名> 20 <海关监管条件 /> 21 <检验检疫类别 /> 22 <版本号 /> 23 </hsData> 24 </DocumentElement>
2.SQL 代码
IF OBJECT_ID('XML_HSData') IS NULL BEGIN CREATE TABLE XML_HSData ( HS编码 NVARCHAR(50) , 商品中文名 NVARCHAR(100) , 海关监管条件 NVARCHAR(20) , 检验检疫类别 NVARCHAR(30) , 版本号 NVARCHAR(10) ) END ELSE BEGIN TRUNCATE TABLE XML_HSData END DECLARE @h INT -- 定义xml句柄 DECLARE @doc XML -- 定义xml对象 SELECT @doc = BulkColumn FROM OPENROWSET(BULK 'C:\hsData.xml', SINGLE_BLOB) AS xmlData -- 获得xml对象 EXECUTE sp_xml_preparedocument @h OUTPUT, @doc -- 获得xml句柄 -- 插入表中 INSERT INTO XML_HSData SELECT * FROM OPENXML(@h, '/DocumentElement/hsData', 2) WITH XML_HSData EXECUTE sp_xml_removedocument @h -- 删除xml句柄 SELECT * FROM XML_HSData
3. 效果: