麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > XML > 正文

在SQLServer中用XQuery分解XML數據

2024-09-05 20:53:54
字體:
來源:轉載
供稿:網友

  在舉例說明如何分解上一篇文章中的數據時,我們首先了解一下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文件更是如此。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产一国产一级毛片视频 | 九九色在线观看 | 人禽l交免费视频观看 视频 | 国产噜噜噜噜久久久久久久久 | 免费永久在线观看黄网 | 久久出精品| 中文国产在线视频 | 一色桃子av大全在线播放 | 日本中文字幕久久 | 一区二区久久精品66国产精品 | 国产精品啪一品二区三区粉嫩 | 欧美77 | 日本免费aaa观看 | 久久777国产线看观看精品 | 欧美另类综合 | 一级电影免费 | 精品一区二区在线播放 | 一区二区国产在线 | 欧美激情视频一区二区免费 | 亚洲一区二区不卡视频 | 黄色影院在线看 | 精品999www | 免费看欧美一级特黄a大片 久久免费视频一区二区三区 | 在线播放av片 | 久久久久久久久久亚洲精品 | 久久久一区二区三区精品 | 久久精品视频日本 | 精品久久久久久久久久久久 | 特级黄aaaaaaaaa毛片 | 97超级碰碰人国产在线观看 | 久草网在线 | 亚洲第一激情 | 毛片电影网址 | 性生活视频软件 | 91网址在线观看 | 亚洲精品3| 国产精品a一| 日韩毛片在线看 | 欧美成在线视频 | 国产一区精品在线观看 | 亚洲特黄 |