SqlServer解析XML數據


 1 --建表
 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參數,對於我來還是很感謝這個項目的,比較沒接觸過的可以學習更多

趁現在晚上有點時間先預習一下,先從增刪改查學起,學習過程記錄一下,供自己以后查閱


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM