日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

SQL Server中讀取XML文件的簡(jiǎn)單做法

瀏覽:31日期:2023-11-03 16:38:59

SQL Server 2000使得以XML導(dǎo)出數(shù)據(jù)變得更加簡(jiǎn)單,但在SQL Server 2000中導(dǎo)入XML數(shù)據(jù)并對(duì)其進(jìn)行處理則有些麻煩。

如果你參考Books Online(BOL),你會(huì)發(fā)現(xiàn)有相關(guān)的條目,包括OPENXML以及 OPENROWSET。所有的這些例子都支持將XML文本作為已經(jīng)聲明的變量,這對(duì)于經(jīng)常處理文本的用戶來(lái)說(shuō)非常方便,但對(duì)于希望在開發(fā)中讀取XML文件并進(jìn)行相應(yīng)處理的開發(fā)人員來(lái)說(shuō)就不是這樣了。處理這樣的問(wèn)題,或許最好從內(nèi)到外來(lái)對(duì)其進(jìn)行分析。

OPENXML是一個(gè)rowset函數(shù)(即返回一個(gè)rowset),它的工作方式類似于rowset函數(shù)OPENQUERY和OPENROWSET。使用OPENXML可以對(duì)XML數(shù)據(jù)執(zhí)行JOINs操作而無(wú)需首先導(dǎo)入數(shù)據(jù)。你還可以將其同INSERT、SELECT、UPDATE以及DELETE等操作聯(lián)合使用。 然而,要使用OPENXML,你必須執(zhí)行兩項(xiàng)OPENQUERY和OPENROWSET并不需要的任務(wù)。這兩項(xiàng)任務(wù)需要兩個(gè)系統(tǒng)存儲(chǔ)進(jìn)程。 第一個(gè)是sp_xml_preparedocument,它將讀取特定的XML文本并將其內(nèi)容提取到內(nèi)存中。其語(yǔ)法如下:

sp_xml_preparedocument @hdoc = OUTPUT,

[, @xmltext = ]

[, @xpath_namespaces =

具體參數(shù)如下: @hdoc:指向某內(nèi)存區(qū)域的句柄(從作用上看等同于一個(gè)指針),相關(guān)數(shù)據(jù)存放在這里。注意這是一個(gè)輸出變量,當(dāng)該進(jìn)程運(yùn)行后,該變量將包含指向XML文件內(nèi)容在內(nèi)存地址的句柄。由于你需要在隨后使用此結(jié)果,因此要確保對(duì)其進(jìn)行保存; @xmltext:實(shí)際上你所希望處理的XML文本; @xml_namespaces:為了正常操作你的XML數(shù)據(jù)所需要的任何名字空間索引(namespace references)。注意在這里出現(xiàn)的任何URL都需要用尖括號(hào)(<>)括起來(lái); 假設(shè)所傳遞的這些參數(shù)都有效,并且XML文檔存在,那么你的XML數(shù)據(jù)就會(huì)被存放到內(nèi)存中去。現(xiàn)在你就可以調(diào)用sp_xml_preparedocument,傳遞存放有XML文件的變量,然后執(zhí)行OPENXML。語(yǔ)法如下:

OPENXML(idocint [in],rowpatternnvarchar[in],[flagsbyte[in]])

[WITH (SchemaDeclaration   TableName)]

注意:在本文中沒(méi)有足夠的文字來(lái)描述OPENXML所接收的參數(shù)。請(qǐng)參閱BOL以獲取更多信息。在Transact-SQL Reference中查找OPENXML。

現(xiàn)在我們已經(jīng)到達(dá)了最后的步驟。所有剩下的工作就是導(dǎo)入一個(gè)實(shí)際的XML文件到SQL并進(jìn)行處理(很奇快為什么所有的BOL示例都沒(méi)有涉及到這一關(guān)鍵的部分)。(我必須感謝我的同事Billy Pang所給予的幫助。他幫助我解決這個(gè)問(wèn)題,并給出了代碼——盡管出于本文需要我對(duì)代碼進(jìn)行了裁減。謝謝Billy!) 基本的技巧是,將文件逐行按文本讀取。然后把所有讀取的行連接為一個(gè)大的VARCHAR變量。最后,將變量傳遞給前面所說(shuō)的代碼。

以下就是讀取文件并將其內(nèi)容存放到某變量的代碼:

DECLARE @FileName varchar(255)

DECLARE @ExecCmd VARCHAR(255)

DECLARE @y INT

DECLARE @x INT

DECLARE @FileContents VARCHAR(8000)

CREATE TABLE #tempXML(PK INT NOT NULL IDENTITY(1,1), ThisLine VARCHAR(255))

SET @FileName = 'C:TempCurrentSettings.xml'

SET @ExecCmd = 'type ' + @FileName

SET @FileContents = ''

INSERT INTO #tempXML EXEC master.dbo.xp_cmdshell @ExecCmd

SELECT @y = count(*) from #tempXML

SET @x = 0

WHILE @x <> @y

BEGIN

SET @x = @x + 1

SELECT @FileContents = @FileContents + ThisLine from #tempXML WHERE PK

= @x

END

SELECT @FileContents as FileContents

DROP TABLE #tempXML

現(xiàn)在在變量@FileContents變量中你已經(jīng)獲得了文件的全部?jī)?nèi)容。所需要做的只是將變量通過(guò)@xmltext參數(shù)傳遞給sp_xml_preparedocument,然后再調(diào)用OPENXML。

有了這種解決辦法,對(duì)XML文檔進(jìn)行各種處理就成為了可能。你可以將XML文檔同SQL表格連接在一起而無(wú)需導(dǎo)入數(shù)據(jù),然后對(duì)這些數(shù)據(jù)進(jìn)行INSERT、PDATE和DELETE等任何操作。

日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
美女毛片一区二区三区四区| 丝袜美腿一区二区三区| 视频在线在亚洲| 99久久精品国产亚洲精品| se01亚洲视频 | 五月亚洲婷婷 | 美女国产一区二区三区| 久久精品二区亚洲w码| 91精品综合| 欧美gv在线| 久久中文字幕av| 日本一区福利在线| 成人午夜网址| 亚洲欧美日韩国产综合精品二区 | 久久国际精品| 精品五月天堂| 久久91视频| 国内揄拍国内精品久久| 欧美www视频在线观看| 久久中文字幕av| 日韩精品欧美| 亚洲国产一区二区在线观看| 国产精品天天看天天狠| 久久国产免费| 狠狠久久婷婷| 日本午夜精品久久久久| 久久免费黄色| 欧美日韩国产高清| 久久不射中文字幕| 日韩一区二区三区四区五区| 国产精品久久久久77777丨| 99精品视频精品精品视频| 日韩毛片视频| 国产精品亚洲综合色区韩国 | 国产精品99久久免费观看| 精品视频网站| 欧美日韩激情| 亚洲美女久久| 高清一区二区三区| 欧美手机在线| 一级欧美视频| 午夜av成人| 伊人精品视频| 人人爱人人干婷婷丁香亚洲| 国产91在线精品| 亚洲国产日韩欧美在线| 91九色综合| 秋霞影视一区二区三区| 亚洲一区二区三区在线免费| 久久一区国产| 亚洲欧美激情诱惑| 久久免费视频66| 日韩视频一区| 天堂中文在线播放| 国产一区导航| 免费在线欧美黄色| 久久国产欧美| 国产欧美亚洲一区| 亚洲婷婷在线| 国产福利亚洲| 99riav1国产精品视频| 欧美日韩中出| 久久久蜜桃一区二区人| 日韩高清一级| 国产91精品对白在线播放| 国产午夜精品一区在线观看| 激情久久婷婷| 久久精品国产久精国产| 亚洲图片久久| 神马久久午夜| 国产午夜一区| 欧美/亚洲一区| 国产精品激情电影| 亚洲一区网站| 成人在线网站| 国产精品久久久网站| 亚洲少妇诱惑| 蜜臀久久精品| 国产丝袜一区| 免费在线观看一区二区三区| av资源亚洲| 国产精品久久久久久妇女| 喷白浆一区二区| 影视先锋久久| 色综合五月天| 国产精品视频一区二区三区四蜜臂 | 日产精品一区| 国产欧美日韩免费观看| 国产精品美女久久久| 97se综合| 麻豆91在线播放| 日本一区二区三区视频在线看| 欧美日韩国产在线观看网站| yellow在线观看网址| 里番精品3d一二三区| 亚洲最新av| 午夜在线播放视频欧美| 久久天堂av| 91视频一区| 精品视频亚洲| 精品久久99| 久久97视频| 国产情侣一区在线| 色8久久久久| 日韩一区精品字幕| 在线一区免费观看| 欧美 日韩 国产精品免费观看| 日韩欧美不卡| 日韩在线高清| 久久精品亚洲一区二区| 国产精品免费99久久久| 欧美亚洲三区| 青青国产精品| 日韩1区2区日韩1区2区| 午夜性色一区二区三区免费视频| 午夜一级久久| 石原莉奈一区二区三区在线观看| 91久久视频| 男人天堂欧美日韩| 美女久久网站| 免费观看在线综合| 亚洲欧美日韩精品一区二区| 国产一区二区高清| 综合色一区二区| 中文字幕一区二区精品区| 国产精品婷婷| 久色成人在线| 日本一区二区三区视频在线看| 天堂久久av| 欧美亚洲国产日韩| 国产剧情在线观看一区| 国产精品久久久一区二区| 国产精品宾馆| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 蜜臀久久久久久久| 亚洲我射av| 国产欧美日韩一级| 麻豆91精品视频| 97精品国产一区二区三区| www在线观看黄色| 国产在线日韩| 视频精品一区二区| 日韩激情av在线| 国产精品一区二区三区四区在线观看 | 综合激情婷婷| 欧美日韩一区二区三区不卡视频 | 精品午夜久久| 偷拍精品精品一区二区三区| se01亚洲视频| 亚洲一区日韩在线| 色狠狠一区二区三区| 国产日韩一区二区三区在线 | 国产精品成人国产| 黑森林国产精品av| 久久国产电影| 亚洲一级淫片| 麻豆精品视频在线| 日韩精品免费一区二区在线观看| 91精品91| 91福利精品在线观看| 久久精品资源| 亚洲v在线看| 国产精品日本| 国产精品天堂蜜av在线播放| av高清不卡| 国产农村妇女精品一区二区| 欧美一区成人| 中文字幕系列一区| 在线一区二区三区视频| 国产精品99精品一区二区三区∴| 高清av一区二区三区| 日韩中文字幕91| 国产精品久久久亚洲一区| 成人免费电影网址| 日本亚洲最大的色成网站www | 日韩视频一区| 国产精品入口久久| 日韩av一级| 日韩一区二区三区免费视频| 福利一区和二区| 麻豆亚洲精品| 精品理论电影在线| 首页欧美精品中文字幕| 激情久久99| 男人的天堂久久精品| 麻豆91精品视频| 日韩专区欧美专区| 国产精品13p| 亚洲精品看片| 涩涩av在线| 91成人精品观看| 99久久亚洲精品| 国产精品白浆| 亚洲欧美久久| 高潮一区二区| 日韩精品第二页| 久久精品高清| 欧美黄色一区二区| 久久国产66| 亚洲人成在线网站|