av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

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

用 SQL 查詢 DB2 XML 數(shù)據(jù)(1)

瀏覽:4日期:2023-11-10 15:19:47
DB2® Viper 正處于 beta 階段,它為存儲(chǔ)、治理和查詢 XML 數(shù)據(jù)提供了新的支持。在本文中,您將學(xué)習(xí)如何使用 SQL 和 SQL/XML 查詢存儲(chǔ)在 XML 列中的數(shù)據(jù)。后續(xù)的文章將闡述如何使用 DB2 支持的一種新語(yǔ)言 XQuery 來(lái)查詢 XML 數(shù)據(jù)。雖然 DB2 的混合體系結(jié)構(gòu)與之前的版本有很大的不同,但是要利用它的新 XML 功能并不難。假如您已經(jīng)熟悉 SQL,那么很快就可以將這方面的技能轉(zhuǎn)化到對(duì)存儲(chǔ)在 DB2 中的本地 XML 數(shù)據(jù)的處理上。通過(guò)本文就可以知道如何實(shí)現(xiàn)這一點(diǎn)。DB2 Viper(現(xiàn)在處于 beta 階段)中的 XML 特性包括新的存儲(chǔ)治理、新的索引技術(shù)以及對(duì)查詢語(yǔ)言的支持。在本文中,學(xué)習(xí)如何使用 SQL 或 帶 XML 擴(kuò)展的 SQL(SQL/XML)查詢 DB2 XML 列中的數(shù)據(jù)。接下來(lái)的文章將討論 DB2 中新引入的對(duì)新興的業(yè)界標(biāo)準(zhǔn) XQuery 的支持,并探索 XQuery 在什么時(shí)候最有用。您也許會(huì)感到驚奇,DB2 還支持雙語(yǔ)查詢 —— 即組合了來(lái)自 SQL 和 XQuery 的表達(dá)式的查詢。至于應(yīng)該使用哪種語(yǔ)言(或兩種語(yǔ)言結(jié)合使用)取決于應(yīng)用程序的需要,同時(shí)也取決于您本身所把握的技能。其實(shí),將兩種查詢語(yǔ)言中的元素組合到一個(gè)查詢中并沒(méi)有您想像的那么難。這樣做還可以為搜索和集成傳統(tǒng) SQL 和 XML 數(shù)據(jù)提供強(qiáng)大的能力。Sample 數(shù)據(jù)庫(kù)本文中的查詢將訪問(wèn)在 “DB2 Viper 快速入門(developerWorks,2006 年 4 月)中創(chuàng)建的 sample 數(shù)據(jù)庫(kù)。這里我們簡(jiǎn)短地回顧一下,sample 數(shù)據(jù)庫(kù)中 "items" 和 "clients" 表的定義:清單 1. 表的定義create table items (id int primary key not null,brandname varchar(30),itemname varchar(30),sku int,srp decimal(7,2),comments xml)create table clients(id int primary key not null,name varchar(50),status varchar(10),contactinfo xml) 12345678910下一頁(yè) 圖 1 顯示了 "items.comments" 列中的示例 XML 數(shù)據(jù),圖 2 顯示了 "clients.contactinfo" 列中的示例 XML 數(shù)據(jù)。隨后的查詢例子將引用其中某個(gè) XML 文檔或這兩個(gè)文檔中某些特定的元素。圖 1. 存儲(chǔ)在 "items" 表 "comments" 列的示例 XML 文檔用 SQL 查詢 DB2 XML 數(shù)據(jù)(1)圖 2. 存儲(chǔ)在 "clients" 表 "contactinfo" 列中的示例 XML 文檔查詢環(huán)境本文中的所有查詢都是交互式地發(fā)出的,您可以通過(guò) DB2 命令行處理器或 DB2 Control Center 中的 DB2 Command Editor 發(fā)出查詢。本文中的屏幕圖像和說(shuō)明主要基于后一種方式。(DB2 Viper 還附帶了一個(gè)基于 Eclipse 的 Developer Workbench,它可以幫助程序員圖形化地構(gòu)造查詢。但是,本文不討論應(yīng)用開(kāi)發(fā)問(wèn)題或 Developer Workbench。)要使用 DB2 Command Editor,需啟動(dòng) Control Center 并選擇 Tools > Command Editor。這時(shí)將彈出如 圖 3 所示的窗口。在上面的面板中輸入查詢,單擊左上角的綠色箭頭運(yùn)行查詢,然后在下面的面板或 "Query results" 標(biāo)簽頁(yè)中查看輸出。圖 3. DB2 Command Editor,可以從 DB2 Control Center 啟動(dòng)純 SQL 查詢即使您對(duì) SQL 所知有限,也仍然可以很輕松地查詢 XML 數(shù)據(jù)。例如,下面的查詢選擇 "clients" 表中的全部?jī)?nèi)容,包括存儲(chǔ)在 "contactinfo" 列的 XML 信息: 上一頁(yè)1234567下一頁(yè) 清單 2. 簡(jiǎn)單的 SELECT 語(yǔ)句select * from clients當(dāng)然也可以編寫更具選擇性的 SQL 查詢,使之包含關(guān)系投影和限制操作。下面的查詢檢索所有具有 "Gold" 狀態(tài)的客戶的 ID、姓名和聯(lián)系方式。請(qǐng)注重,"contactinfo" 列包含 XML 數(shù)據(jù),而其他兩列不包含 XML 數(shù)據(jù):清單 3. 帶投影和限制的簡(jiǎn)單 SELECT 語(yǔ)句select id, name, contactinfofrom clientswhere status = 'Gold'正如您所預(yù)料,您可以基于這樣的查詢創(chuàng)建視圖,下面的 "goldview" 可以說(shuō)明這一點(diǎn):清單 4. 創(chuàng)建包含 XML 列的視圖create view goldview asselect id, name, contactinfofrom clientswhere status = 'Gold'不幸的是,很多事情光用 SQL 是無(wú)法解決的。通過(guò)純 SQL 語(yǔ)句可以檢索整個(gè) XML 文檔(剛才已證實(shí)這一點(diǎn)),但是卻不能指定基于 XML 的查詢謂詞,也不能檢索 XML 文檔的某一部分或者 XML 文檔中特定的元素值。換句話說(shuō),使用純 SQL 不能對(duì) XML 文檔中的片段進(jìn)行投影、限制、連接、聚集或排序操作。例如,您不能單獨(dú)檢索 Gold 客戶的 email 地址或居住在郵政編碼為 "95116" 的地區(qū)的客戶的姓名。為了表達(dá)這些類型的查詢,需要使用帶 XML 擴(kuò)展的 SQL(SQL/XML)、XQuery 或結(jié)合使用這兩種查詢語(yǔ)言。下一節(jié)將探討 SQL/XML 的幾個(gè)基本特性。在接下來(lái)的文章中,我們將學(xué)習(xí)如何編寫 XQuery 以及如何將 XQuery 與 SQL 結(jié)合使用。SQL/XML 查詢顧名思義,SQL/XML 被設(shè)計(jì)用來(lái)為 SQL 和 XML 兩者之間搭一座橋。它首先是 SQL 標(biāo)準(zhǔn)的一部分,經(jīng)過(guò)演化現(xiàn)在包括將 XQuery 或 XPath 表達(dá)式嵌入 SQL 語(yǔ)句的規(guī)范。XPath 是用于導(dǎo)航 XML 文檔以便發(fā)現(xiàn)元素或?qū)傩缘囊环N語(yǔ)言。XQuery 包括對(duì) XPath 的支持。 上一頁(yè)12345678下一頁(yè) 請(qǐng)務(wù)必注重,XQuery(和 XPath)表達(dá)式是大小寫敏感的。例如,引用 XML 元素 "zip" 的 XQuery 并不適用于名為 "ZIP" 或 "Zip" 的 XML 元素。SQL 程序員有時(shí)候很難記住大小寫敏感這一點(diǎn),因?yàn)?SQL 查詢語(yǔ)法答應(yīng)使用 "zip"、"ZIP" 和 "Zip" 來(lái)引用同一個(gè)列名。DB2 Viper 提供了超過(guò) 15 個(gè) SQL/XML 函數(shù),通過(guò)這些函數(shù)可以搜索 XML 文檔中的特定數(shù)據(jù),將傳統(tǒng)數(shù)據(jù)轉(zhuǎn)換成 XML,將 XML 數(shù)據(jù)轉(zhuǎn)換成關(guān)系數(shù)據(jù),以及執(zhí)行其他有用的任務(wù)。本文不討論 SQL/XML 的所有方面,而只是談到幾種常見(jiàn)的查詢挑戰(zhàn),以及一些要害的 SQL/XML 函數(shù)如何解決這些挑戰(zhàn)。根據(jù) XML 元素值 “限制 結(jié)果SQL 程序員經(jīng)常編寫根據(jù)某種條件限制從 DBMS 返回的行的查詢。例如,清單 3 中的 SQL 查詢限制從 "clients" 表中檢索的行,使之只包括那些具有 "Gold" 狀態(tài)的客戶。在這個(gè)例子中,客戶的狀態(tài)可在 SQL VARCHAR 列中捕捉。但是,假如您想根據(jù)某種應(yīng)用于 XML 列中數(shù)據(jù)的條件對(duì)搜索進(jìn)行限制,那么應(yīng)該怎么做呢?SQL/XML 的 XMLExists 函數(shù)為完成該任務(wù)提供了一種手段。通過(guò) XMLExists 可以在 XML 文檔中找到一個(gè)元素,并測(cè)試它是否滿足某個(gè)特定的條件。假如用在 WHERE 子句中,則 XMLExists 可以限制返回的結(jié)果,使之只包括那些包含具有特定 XML 元素值的 XML 文檔的行(換句話說(shuō),指定的值等于 "true")。讓我們看看早先碰到的一個(gè)查詢問(wèn)題。假如您想找到居住在具有特定郵政編碼的地區(qū)的所有客戶的姓名。您也許還記得,"clients" 表的一個(gè) XML 列中存儲(chǔ)了客戶的地址(包括郵政編碼)。(見(jiàn) 圖 2。)通過(guò)使用 XMLExists,可以從 XML 列中搜索目標(biāo)郵政編碼,并相應(yīng)地限制返回的結(jié)果集。下面的 SQL/XML 查詢返回居住在郵政編碼為 95116 的地區(qū)的客戶的姓名: 上一頁(yè)123456789下一頁(yè) 清單 5. 根據(jù) XML 元素值限制結(jié)果select name from clientswhere xmlexists('$c/Client/Address[zip="95116"]'passing clients.contactinfo as "c")第一行是一個(gè) SQL 子句,指定僅檢索 "clients" 表 "name" 列中的信息。WHERE 子句調(diào)用 XMLExists 函數(shù),指定一個(gè) XPath 表達(dá)式,這個(gè)表達(dá)式使 DB2 找到 "zip" 元素并檢查元素值是否為 95116。"$c/Client/Address" 子句表明 DB2 用于定位 "zip" 元素的 XML 文檔層次結(jié)構(gòu)中的路徑。通過(guò)使用可以從節(jié)點(diǎn) "$c"(稍后將會(huì)解釋)訪問(wèn)的數(shù)據(jù),DB2 將從 "Client" 元素中找到它的子元素 "Address",以便檢查郵政編碼("zip" 值)。最后一行決定 "$c" 的值:它是 "clients" 表的 "contactinfo" 列。因此,DB2 檢查 "contactinfo" 列中的 XML 數(shù)據(jù),從根元素 "Client" 深入到 "Address" 子元素再找到 "zip" 子元素,然后判定客戶是否居住在目標(biāo)地區(qū)。假如客戶住在目標(biāo)地區(qū),則 XMLExists 函數(shù)的返回值為 "true",DB2 將返回與那一行相關(guān)的客戶的姓名。在使用 XMLExists 查詢謂詞時(shí)經(jīng)常會(huì)出現(xiàn)一個(gè)錯(cuò)誤,如 清單 6 所示。清單 6. 根據(jù) XML 元素值限制結(jié)果時(shí)采用的不正確語(yǔ)法select name from clientswhere xmlexists('$c/Client/Address/zip="95116" 'passing clients.contactinfo as "c")雖然這個(gè)查詢也可以成功地執(zhí)行,但是它不能限制結(jié)果,使之僅包含居住在郵政編碼為 95116 的地區(qū)的客戶。(這是由于標(biāo)準(zhǔn)中規(guī)定的語(yǔ)義造成的,而且這并不是 DB2 所特有的。)為了限制結(jié)果,使之僅包含居住在郵政編碼為 95116 的地區(qū)的客戶,需要使用前面 清單 5 中展示的語(yǔ)法。 上一頁(yè)12345678910下一頁(yè) 您可能很想知道如何在應(yīng)用程序中包括限制 XML 數(shù)據(jù)的查詢。雖然本文不具體討論應(yīng)用開(kāi)發(fā)話題,但還是提供了一個(gè) 簡(jiǎn)單的 Java 例子,這個(gè)例子在一條 SQL/XML 語(yǔ)句中使用一個(gè)參數(shù)標(biāo)記位將輸出限制為居住在給定地區(qū)的客戶的信息。“投影 XML 元素值現(xiàn)在讓我們考慮一種稍微有些不同的情景,假設(shè)您想將 XML 值投影到返回的結(jié)果集。換句話說(shuō),我們要從 XML 文檔中檢索一個(gè)或多個(gè)元素值。有很多方法可以做這件事。首先我們使用 XMLQuery 函數(shù)來(lái)檢索一個(gè)元素的值,然后使用 XMLTable 函數(shù)來(lái)檢索多個(gè)元素的值,然后將這些映射到一個(gè) SQL 結(jié)果集的列。我們來(lái)考慮如何解決之前擺在我們面前的一個(gè)問(wèn)題:如何創(chuàng)建一個(gè)列出 Gold 客戶的 email 地址的報(bào)告。下面 清單 7 中的查詢調(diào)用 XMLQuery 函數(shù)來(lái)完成這項(xiàng)任務(wù):清單 7. 檢索符合條件的客戶的 email 信息select xmlquery('$c/Client/email'passing contactinfo as "c")from clientswhere status = 'Gold'第一行指定要返回根元素 "Client" 的 "email" 子元素的值。第二行和第三行表明 DB2 在哪里可以找到該信息 —— 在 "clients" 表的 "contactinfo" 列中。第四行進(jìn)一步限制查詢,表明您只對(duì) Gold 客戶的 email 地址感愛(ài)好。這個(gè)查詢將返回一組 XML 元素和值。例如,假如有 500 名 Gold 客戶,每個(gè)客戶有一個(gè) email 地址,那么輸出將是一個(gè)單列的結(jié)果集,一共有 500 行,如 清單 8 所示:清單 8. 之前查詢的示例輸出1--------------------------------------------<email>user5976@anyprovider.com</email>. . .<email>someID@yahoo.com</email> 上一頁(yè)234567891011下一頁(yè) 假如每個(gè) Gold 客戶有多個(gè) email 地址,那么需要指示 DB2 只返回首要的地址(也就是在客戶的 "contactinfo" 文檔中找到的第一個(gè) email 地址)。為此,可以修改查詢的第一行中的表達(dá)式:清單 9. 檢索每個(gè)符合條件的客戶的第一個(gè) email 地址select xmlquery('$c/Client/email[1]'passing contactinfo as "c")from clientswhere status = 'Gold'最后,假如有些 Gold 客戶沒(méi)有 email 地址,那么可能要編寫一個(gè)查詢從結(jié)果集中排除 null 值。為此可以修改之前的查詢,添加另一個(gè)謂詞到 WHERE 中,以測(cè)試是否缺少 email 信息。您已經(jīng)熟悉了一個(gè)可以幫您實(shí)現(xiàn)這一點(diǎn)的 SQL/XML 函數(shù) —— 那就是 XMLExists。清單 10 展示了如何重新編寫之前的查詢,以便過(guò)濾掉那些聯(lián)系方式(存儲(chǔ)為 XML 文檔)中缺少 email 地址的 Gold 客戶的行:清單 10. 對(duì)于至少有一個(gè) email 地址的客戶,檢索每個(gè)符合條件的客戶的第一個(gè) email 地址select xmlquery('$c/Client/email[1]'passing contactinfo as "c")from clientswhere status = 'Gold'and xmlexists('$c/Client/email' passing contactinfo as "c")現(xiàn)在我們考慮一個(gè)稍微不同的情景,假設(shè)您要檢索多個(gè) XML 元素值。XMLTable 可以從 XML 列中的數(shù)據(jù)生成標(biāo)量輸出,可以為程序員提供 XML 數(shù)據(jù)的 “關(guān)系 視圖,因此非常有用。與 XMLExists 和 XMLQuery 一樣,XMLTable 函數(shù)使 DB2 在 XML 文檔層次結(jié)構(gòu)中定位到感愛(ài)好的數(shù)據(jù)。然而,XMLTable 還包括一些子句,用于將目標(biāo) XML 數(shù)據(jù)映射到 SQL 數(shù)據(jù)類型的結(jié)果集列。 上一頁(yè)3456789101112下一頁(yè) 考慮以下查詢(清單 11),該查詢投影存儲(chǔ)在 "items" 表中的關(guān)系數(shù)據(jù)和 XML 數(shù)據(jù)。(關(guān)于 "items" 表請(qǐng)查看 圖 1)。評(píng)論 ID、客戶 ID 和評(píng)語(yǔ)存儲(chǔ)在 "comments" 列中的 XML 文檔中。商品名稱存儲(chǔ)在一個(gè) SQL VARCHAR 列中。清單 11. 檢索多個(gè) XML 元素并將每個(gè)元素轉(zhuǎn)換成傳統(tǒng)的 SQL 數(shù)據(jù)類型select t.Comment#, i.itemname, t.CustomerID, Message from items i,xmltable('$c/Comments/Comment' passing i.comments as "c"columns Comment# integer path 'CommentID',CustomerID integer path 'CustomerID',Message varchar(100) path 'Message') as t第一行指定將包含在結(jié)果集中的列。查詢中后面的幾行表明,用引號(hào)括起來(lái)、并且以變量 "t" 為前綴的列是基于 XML 元素值的列。第二行調(diào)用 XMLTable 函數(shù)指定包含目標(biāo)數(shù)據(jù)("i.comments")的 DB2 XML 列和在該列的 XML 文檔中的路徑,通過(guò)該路徑可以定位感愛(ài)好的元素(在根元素 "Comments" 的子元素 "Comment" 中)。第 3 到 5 行的 "columns" 子句標(biāo)識(shí)出將被映射到第一行指定的 SQL 結(jié)果集中的輸出列的特定 XML 元素。這個(gè)映射需要指定 XML 元素值將被轉(zhuǎn)換成的數(shù)據(jù)類型。在這個(gè)例子中,所有 XML 數(shù)據(jù)被轉(zhuǎn)換成傳統(tǒng)的 SQL 數(shù)據(jù)類型。圖 4 展示了運(yùn)行該查詢得到的示例結(jié)果。可以看到,輸出是一個(gè)簡(jiǎn)單的 SQL 結(jié)果集。注重,列名已經(jīng)被變成大寫形式 —— 這在 SQL 中是很常見(jiàn)的。圖 4. 使用 XMLTable 函數(shù)的查詢的示例輸出假如需要的話,還可以使用 XMLTable 創(chuàng)建包含 XML 文檔的結(jié)果集。例如,以下語(yǔ)句產(chǎn)生類似于上述結(jié)果的結(jié)果集,不同的是 "Message" 數(shù)據(jù)被包含在一個(gè) XML 列中,而不是包含在一個(gè) SQL VARCHAR 列中。 上一頁(yè)45678910111213下一頁(yè) 清單 12. 檢索多個(gè) XML 元素并將它們轉(zhuǎn)換成傳統(tǒng)的 SQL 或 XML 數(shù)據(jù)類型select t.Comment#, i.itemname, t.CustomerID, Message from items i,xmltable('$c/Comments/Comment' passing i.comments as "c"columns Comment# integer path 'CommentID',CustomerID integer path 'CustomerID',Message XML by ref path 'Message') as t創(chuàng)建 XML 數(shù)據(jù)的關(guān)系視圖正如您可能想像到的那樣,SQL/XML 函數(shù)可用于定義視圖。假如要為 SQL 應(yīng)用程序的程序員提供本地 XML 數(shù)據(jù)的關(guān)系模型,那么這種功能非凡有用。為 XML 列中的數(shù)據(jù)創(chuàng)建關(guān)系視圖并不比投影 XML 元素值復(fù)雜多少。您只需編寫一個(gè) SQL/XML SELECT 語(yǔ)句,在語(yǔ)句中調(diào)用 XMLTable 函數(shù),并以此作為視圖定義的基礎(chǔ)。下面 清單 13 中的例子基于 "items" 表的 XML 列和非 XML 列中的信息創(chuàng)建一個(gè)視圖。(這類似于 清單 11 中的查詢。)清單 13. 基于 XMLTable 的輸出創(chuàng)建視圖create view commentview(itemID, itemname, commentID, message, mustrespond) asselect i.id, i.itemname, t.CommentID, t.Message, t.ResponseRequested from items i,xmltable('$c/Comments/Comment' passing i.comments as "c"columns CommentID integer path 'CommentID',Message varchar(100) path 'Message',ResponseRequested varchar(100) path 'ResponseRequested') as t;雖然在 XML 列中的數(shù)據(jù)上創(chuàng)建關(guān)系視圖很輕易,但是用起來(lái)要小心。在對(duì)那樣的視圖發(fā)出查詢時(shí),DB2 不使用 XML 列索引。因此,假如以 ResponseRequested 列為索引,并發(fā)出一條將 "mustrespond" 列的結(jié)果限制為某個(gè)特定值的 SQL 查詢,那么 DB2 將讀取所有的 XML 文檔,并搜索適當(dāng)?shù)?"ResponseRequested" 值。除非數(shù)據(jù)量不大,否則這樣做會(huì)降低運(yùn)行時(shí)性能。然而,假如在那些視圖上運(yùn)行的查詢還包含有嚴(yán)格限制性的謂詞,且參與索引的項(xiàng)中有傳統(tǒng)的 SQL 類型的項(xiàng)(在這個(gè)例子中可以是 "i.id" 或 "i.itemname"),那么可以緩解潛在的運(yùn)行時(shí)性能問(wèn)題。DB2 使用關(guān)系索引將符合條件的行過(guò)濾到一個(gè)較小的量,然后在返回最終結(jié)果之前,將更多的 XML 查詢謂詞應(yīng)用到這些臨時(shí)的結(jié)果上。 上一頁(yè)567891011121314下一頁(yè) 連接 XML 數(shù)據(jù)和關(guān)系數(shù)據(jù)現(xiàn)在,您可能想知道如何連接 XML 數(shù)據(jù)和非 XML 數(shù)據(jù)(例如基于傳統(tǒng) SQL 類型的關(guān)系數(shù)據(jù))。DB2 使您可以僅用一條 SQL/XML 語(yǔ)句來(lái)做到這一點(diǎn)。有很多方法可用來(lái)制定那樣的連接,這取決于數(shù)據(jù)庫(kù)模式和工作負(fù)載需求,不過(guò)這里我們只談?wù)撘粋€(gè)例子。您也許會(huì)感到驚奇,其實(shí)您已經(jīng)知道足夠多關(guān)于 SQL/XML 的東西,完全可以實(shí)現(xiàn)這種連接。還記得嗎,"items" 表中的 XML 列包含一個(gè) "CustomerID" 元素。這可以作為與 "clients" 表中基于整數(shù)的列 "id" 的一個(gè)連接鍵。因此,假如要獲得一個(gè)報(bào)告,其中列出對(duì)您的一件或多件產(chǎn)品發(fā)表了評(píng)論的客戶的姓名和狀態(tài),那么需要將一個(gè)表中的 XML 元素值與來(lái)自另一個(gè)表中的 SQL 整數(shù)值相連接。實(shí)現(xiàn)這一點(diǎn)的一種方法是使用 XMLExists 函數(shù),如 清單 14 所示:清單 14. 連接 XML 數(shù)據(jù)和非 XML 數(shù)據(jù)select clients.name, clients.status from items, clientswhere xmlexists('$c/Comments/Comment[CustomerID=$p]'passing items.comments as "c", clients.id as "p")第一行標(biāo)識(shí)出要包括在查詢結(jié)果集中的 SQL 列以及查詢中所引用的源表。第二行包括了連接子句。這里,XMLExists 決定在一個(gè)目標(biāo)源中的 "CustomerID" 值是否等于來(lái)自另一個(gè)目標(biāo)源的值。第三行指定這兩個(gè)源:第一個(gè)目標(biāo)源是 "items" 表中的 XML 列 "comments",第二個(gè)目標(biāo)源是 "clients" 表中的整數(shù)列 "id"。因此,假如客戶對(duì)任何產(chǎn)品發(fā)表了評(píng)論,并且 "clients" 表中存在關(guān)于該客戶的信息,那么 XMLExists 表達(dá)式將等于 "true",報(bào)告中將包括該客戶的姓名和狀態(tài)。 上一頁(yè)6789101112131415下一頁(yè)
標(biāo)簽: DB2 數(shù)據(jù)庫(kù)
主站蜘蛛池模板: 国产视频成人 | 亚洲免费福利视频 | 成人免费激情视频 | 国产一级片在线播放 | 成年人免费在线视频 | 中文字幕免费观看视频 | 久久九九视频 | 欧美国产综合 | 毛片视频免费 | 黄色1级视频 | 91插插插插插 | 老司机精品在线 | 在线色综合 | 天天干天天操天天射 | 日韩毛片视频 | 国产黄色免费视频 | 国内精品一区二区三区 | 最新av在线播放 | 黄色免费大片 | 亚洲天堂成人 | 色哥网| 日本一区二区三区四区五区 | 爱福利视频 | 欧美日韩国产三级 | 三级福利视频 | 日本三级大片 | 欧美精品日韩 | 国产乱码一区二区三区 | 久在线观看 | 高清一区二区 | 国产日韩在线视频 | 不卡在线| 日韩综合精品 | 国产成人在线视频 | 99久久99| 日韩国产一区 | 99热国产| 国产综合久久 | 欧美片网站yy | 18成人免费观看网站 | 手机看片欧美 |