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

首頁 > 開發 > XML > 正文

用OPENXML函數將XML數據轉為關聯數據

2024-07-21 02:31:57
字體:
來源:轉載
供稿:網友

SQL Server 2005中進一步延續了對xml的支持。本文將向我們展示如何用SQL Server提供的OPENXML函數將XML類型數據轉換為其它格式的關聯數據。

從SQL Server 2000開始,微軟開始支持XML類型的數據。在SQL Server2005中,微軟延續了這一特性,并加強了對XML 數據列、XML變量以及XML索引的支持。

在數據庫中存儲XML數據是一個很出色的特征。對于大部分的數據處理需求來講,將XML數據格式化為其它關聯數據是十分重要。這也是引入OPENXML函數的原因。OPENXML是一個SQL Server提供的函數,它的作用是接收XML數據,提供內存中 XML數據的行集視圖。

一個OPENXML函數用例

在下面的例子中,我們將演示如何使用OPENXML函數。假定我們現在正在從事一個網上購物系統開發。在這個場景中,顧客選擇登錄網站方式購買多種產品。因為根據公司的商業模式,通過網站購物能夠節省成本。我們假定大部分的顧客都購買了七件或者更多的商品。我們的目標是當客戶頻繁的訪問網站的時候,要盡量減少數據庫的調用。我們的想法是將網頁上提交的采購需求存儲為XML文檔,并且將其中的XML數據以字符串的形式傳送給數據庫底層的程序處理。這樣,我們就可以在一次數據庫調用中將XML數據中的訂單信息插入數據庫中。

我們該如何解決上面的問題呢?首先我們看看將要編輯的網頁數據。一個簡單的XML文檔含有來自網站的很多核心信息,包括:產品名稱、價格、日期以及顧客資料。列表A包含了一個簡單的XML數據流。

然后,我們需要設計一個網頁接口提供存儲程序的調用。通過調用這一存儲程序,將XML數據流存儲至數據庫。列表B是這一存儲程序的實現內容。

這一存儲程序支持XML數據類型(SQL Server 2005中新特色)作為輸入參數(我們也可以使用變量字符數據類型作為我們的輸入參數,例如VARCHAR (max)或者定義VARCHAR數據類型)。

接下來,我們調用系統程序sp_xml_PReparedocument,它不僅創建了XML文檔在內存中的表示,也允許XML文檔作為調用參數。一旦我們擁有了指向內存中XML文檔的句柄,就可以調用OPENXML函數。在函數調用中使用不同的參數,還可以對XML數據的返回結果集進行詳細的控制。

我們提供指向XML文檔的句柄,并且通過XPATH查詢返回想要的XML數據中的節點。OPENXML函數中的WITH子句允許指定返回數據的行集格式。一旦將數據插入到websales 表格中,就可以調用系統程序sp_xml_removedocument刪除SQL Server 服務器內存中的XML數據。

這個簡單的例子演示了通過OPENXML函數來減少數據庫調用次數的強大功能。OPENXML函數提供很大的靈活性,你既可以將所有的XML數據插入到SQL Server 數據表中,也可以拆分XML文件,將其插入到不同的SQL Server數據表中。通過這一技術,我們就可以在一次程序調用中插入8條記錄,而不是像傳統的技術那樣,要通過8次操作實現。

OPENXML的局限性

調用OPENXML函數時要注意內存的使用情況。系統程序sp_xml_preparedocument 的返回值是指向內存中XML文檔的句柄。所以,你最好不要使用OPENXML加載較大的XML文檔,因為那樣可能會造成服務器的內存溢出。

在以后的文章中,我將會向你介紹如何使用SQL Server 2005提供的關于XML的一些新屬性,這些新屬性不僅能夠實現OPENXML函數的功能,而且不需要考慮OPENXML調用時產生的內存操作問題。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美激情 在线播放 | av在线在线| 91久久久久久久一区二区 | 成人精品久久 | 日日艹夜夜艹 | 特级黄一级播放 | 欧美性色大片 | 在线播放污 | 国产一级大片在线观看 | 老司机一级毛片 | 国产a级片电影 | 最新久久免费视频 | 国产精品99精品 | 男女隐私免费视频 | 精品国产91久久久久久久 | 国产午夜免费 | 国产女做a爱免费视频 | 日本特级a一片免费观看 | 黄色特级片黄色特级片 | 国产成人精品一区二区仙踪林 | hdbbwsexvideo| 午夜国产精品成人 | 羞羞的小视频 | 免费观看视频在线 | 成人免费一区二区三区 | 噜噜社 | 18pao国产成人免费视频 | 精品国产一区二区三 | 成人福利免费在线观看 | 精品在线视频观看 | 亚洲成人福利网站 | 天天夜夜操操 | 成人免费毛片在线观看 | 亚洲综合精品 | 国产亚洲精品视频中文字幕 | 国产免费一区二区三区最新不卡 | 免费永久看羞羞片网站入口 | 亚洲福利在线观看视频 | 日本一区二区在线 | 四虎久草 | 日韩视频1 |