SqlServer解析XML数据
时间:2021-07-01 10:21:17
帮助过:24人阅读
--建表
2 create table xml_table(id
int identity primary key, xmldata xml)
3 --插入数据
4 insert into xml_table(xmldata)
values
5 (
‘<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
6 <REQUEST>
7 <AKB020>00010102</AKB020>
8 <MSGFMT>ZRHIS</MSGFMT>
9 <REQUEST_SN>159800</REQUEST_SN>
10 <BAC060>ZRHIS03</BAC060>
11 <USERID></USERID>
12 <PASSWD></PASSWD>
13 <PARAM1></PARAM1>
14 <PARAM2></PARAM2>
15 <PARAM3></PARAM3>
16 <PARAM>
17 <CURRENT_PAGE>1</CURRENT_PAGE>
18 <PAGE_COUNT>30</PAGE_COUNT>
19 <ZKE283>1</ZKE283>
20 </PARAM>
21 </REQUEST>‘
22 )
23 --查询表
24 select * from xml_table
25 --查询BAC060值
26 select xmldata.query(
‘/REQUEST‘), xmldata.query(
‘/REQUEST/BAC060‘)
from xml_table
--这样只能查到含节点的内容
27 select xmldata.value(
‘(/REQUEST/BAC060)[1]‘,
‘nvarchar(120)‘)
from xml_table
--查询到ZRHIS03值 ZRHIS03
28 --查询PARAM节点内的PAGE_COUNT值
29 select xmldata.query(
‘/REQUEST‘), xmldata.query(
‘/REQUEST/PARAM/PAGE_COUNT‘)
from xml_table
--这样只能查到含节点的内容
30 select xmldata.value(
‘(/REQUEST/PARAM/PAGE_COUNT)[1]‘,
‘nvarchar(120)‘)
from xml_table
--查询到ZRHIS03值30
31 --增加节点TESTSTR
32 update xml_table
33 set xmldata.modify(
‘insert <TESTSTR>这是增加的节点</TESTSTR> before (/REQUEST/USERID)[1]‘ )
34 --查询增加的节点TESTSTR
35 select xmldata.value(
‘(/REQUEST/TESTSTR)[1]‘,
‘nvarchar(120)‘)
from xml_table
--这是增加的节点
36 --删除节点
37 update xml_table
38 set xmldata.modify(
‘delete /REQUEST/TESTSTR‘)
最近接到个新项目,需要利用存储过程操作XML,不需要代码传参,直接用存储过程返回XML参数,对于我来还是很感谢这个项目的,比较没接触过的可以学习更多
趁现在晚上有点时间先预习一下,先从增删改查学起,学习过程记录一下,供自己以后查阅
SqlServer解析XML数据
标签:query str 新项目 insert 增加 color 学习过程 varchar 现在