SQL脚本解析XML方法

本文介绍了如何在SQL中使用存储过程解析XML数据。通过创建一个XML字符串并使用OPENXML函数将其内容导入到临时表中,然后进行查询,展示了如何处理和提取XML中的服务器IP地址和名称。
前段时间,写一个生成后台管理服务器IP地址列表的存储过程,存储过程使用了解析XML的技术。
实现方法如下:
--1、先用程序把所有管理的服务器信息用XML拼接好,作为参数传递给存储过程
DECLARE @xml  nvarchar(1000)
--XML格式
SET @xml='
<ROOT>
 <World Worldid="1" IP="10.1.1.1" WorldName="龙腾世界"/>
 <World Worldid="1" IP="10.1.1.2" WorldName="龙腾日志"/>
 <World Worldid="2" IP="10.1.1.3" WorldName="天下世界"/>
 <World Worldid="2" IP="10.1.1.4" WorldName="天下日志"/>
</ROOT>
'
--2、存储过程中使用以下方法进行解析
--解析XML,并写入临时表
DECLARE @hdoc int
EXEC sp_xml_preparedocument @hDoc OUTPUT,@xml 
SELECT Worldid,IP,WorldName
INTO #My_Temp
FROM OPENXML(@hDoc,'//World')  
 WITH(     
          Worldid INT, 
          IP VARCHAR(64), 
          WorldName VARCHAR(64)
      )
EXEC sp_xml_removedocument @hDoc
--查询临时表
SELECT * FROM #My_Temp
--查询结果
Worldid     IP                                                               WorldName
----------- ---------------------------------------------------------------- ----------------------------------------------------------------
1           10.1.1.1                                                         龙腾世界
1           10.1.1.2                                                         龙腾日志
2           10.1.1.3                                                         天下世界
2           10.1.1.4                                                         天下日志
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值