国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

在SQL Server中用XQuery分解XML數據

瀏覽:100日期:2023-11-01 14:32:50

本文討論SQL Server 2005的新功能,它允許你將XML數據分解到關系格式中,而不必耗用太多內存。

在舉例說明如何分解上一篇文章中的數據時,我們首先了解一下XQuery和它在SQL Server 2005中為開發者提供的功能。

XQuery介紹

XQuery,也稱作XML Query,是一種查詢XML數據的語言,允許你提取所需的節點和元素。它由W3C定義,可用于今天的大多數主流數據庫引擎中,如Oracle、DB2和SQL Server。

SQL Server 2005 XQuery函數

下面的四個函數是SQL Server 2005中的XQuery函數。(注意,XML、XQuery語句和下面的函數都區分大小寫。例如,SQL編譯器接受XML數據中的.exist,但拒絕.EXIST或.Exist。)

xml.exist

這個方法根據一個XML節點上的搜索表達式返回一個布爾值。例如,列表A中XML代碼片段中的語句將返回1(真):

SELECT @x.exist('/christmaslist/person[@gift = 'socks']')

這個語句返回0(假):

SELECT @x. exist ('/christmaslist/zach')

由于“Socks”一詞被封套,這個語句將返回0(假)。

SELECT @x.exist('/christmaslist/person[@gift = 'socks']')

xml.value

這個方法接受一個XQuery語句并返回一個單獨值。使用列表A中同樣的XML代碼片段,不可以使用VALUE函數生成“betty”值,如下所示:

SELECT @x.value('/christmaslist[1]/person[1]/@name', 'VARCHAR(20)')

而XQuery生成“zach”值。

SELECT @x.value('/christmaslist[1]/person[2]/@name', 'VARCHAR(20)')

xml.query

這個方法接受一個XQuery并返回一個XML數據類型的實例??梢园葱枰獙⑦@些查詢簡單或復雜化,下面是一個簡單的例子:

SELECT @x.query('/christmaslist/person')

它返回XML文件:

<person name='betty' gift='camera' />

<person name='zach' gift='elmo doll' />

<person name='brad' gift='socks' />

xml.nodes

在你需要將一個XML數據類型變量中的數據分解到關系數據中時,這個方法十分有用。這個方法接受一個XQuery語句作為參數,并返回一個包含XML變量邏輯標量數據的行集。列表B中的查詢利用上面定義的XML變量,并將數據分解到一個結果集中,它顯示在XML變量中定義的人物姓名。

修改OPENXML存儲過程

現在我來說明如何修改上周的OPENXML存儲過程,使其可以應用XQuery功能。首先,我往XML變量中加載一些數據。如列表C所示。我們可以建立一個接受XML參數的過程,再應用XQuery函數把XML文件中的數據插入一個表中,而不必應用OPENXML。如列表D所示。

最初在數據庫中應用XML似乎有些難于處理,還要花一些時間習慣使用XQuery和Xpath查詢。但是,經過一段時間的學習以后,你就會發現在數據庫中應用XML數據相當實用。

例如,在上述存儲過程中應用XML數據,你只需調用一次數據庫,而不必像典型存儲過程編程那樣調用N次數據庫。這二者似乎區別不大,但對一個繁忙的系統而言,應用XML數據會有很大益處。而且,應用XQuery而非OPENXML還會顯著提高性能,對小型XML文件更是如此。

標簽: Sql Server 數據庫
主站蜘蛛池模板: 深夜福利视频在线观看免费视频 | 精品国产一区二区三区久久 | 亚洲依依成人综合在线网址 | 韩国欧美一级毛片 | 99国产精品农村一级毛片 | 欧美在线一区二区三区不卡 | 亚洲最新网站 | 成人亚洲精品 | 高清黄色毛片 | 免费国产成人午夜在线观看 | 日本特黄a级高清免费酷网 日本特黄特色 | 91亚洲精品一区二区福利 | 免费看欧美成人性色生活片 | 日日操干 | 爽爽视频在线观看 | 国产精品19p| 亚洲天堂久久 | 国产v欧美v日韩在线观看 | 国产一区二区三区不卡在线观看 | 黄色作爱视频 | 亚洲一级毛片免观看 | 欧美一级片在线免费观看 | 久久精品午夜视频 | 亚洲系列第一页 | 国产在线视频欧美亚综合 | 精品久久久久久国产 | 精品国产高清在线看国产 | 久久免费特黄毛片 | 国产午夜精品一区二区三区不卡 | 精品国产香蕉伊思人在线 | 精品一久久香蕉国产线看播放 | 国产男女在线观看 | 看中国一级毛片 | 手机在线日韩高清理论片 | 一级特级aaa毛片 | 美女一级毛片视频 | 中文字幕中文字幕在线 | 国产精品爱久久久久久久小 | 亚洲品质自拍视频网站 | 日韩亚洲一区二区三区 | 欧美一二三区视频 |