韩剧1988免费观看全集_久久影视三级福利片_亚洲视频在线观看免费_在线观看欧美日韩_国产亚洲激情在线_亚洲精品美女久久久_欧美国产日韩一区二区在线观看_91在线观看免费高清完整版在线观看_日韩av免费看_国产又爽又黄的激情精品视频_琪琪亚洲精品午夜在线_欧美性猛xxx_不卡毛片在线看_国产亚洲日本欧美韩国_91国内在线视频_精品国产福利视频

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

Oracle XQuery查詢、構(gòu)建與轉(zhuǎn)換XML(1)

Oracle XQuery查詢、構(gòu)建與轉(zhuǎn)換XML(1)

更新時(shí)間:2022-10-18 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

 

在 Oracle 數(shù)據(jù)庫(kù) 10g 第 2 版中,Oracle 引入了一個(gè)與該數(shù)據(jù)庫(kù)集成的全功能自帶 XQuery 引擎,該引擎可用于完成與開發(fā)支持 XML 的應(yīng)用程序相關(guān)的各種任務(wù)。XQuery 是一種用于處理 XML 數(shù)據(jù)模型的查詢語言,它實(shí)際上可操作任何類型的可用 XML 表達(dá)的數(shù)據(jù)。盡管 Oracle XQuery 實(shí)施使您可以使用數(shù)據(jù)庫(kù)數(shù)據(jù)和外部數(shù)據(jù)源,但在處理數(shù)據(jù)庫(kù)中存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù)方面,Oracle XML DB 通?梢燥@著提高性能。

本文提供的示例不僅演示了在什么場(chǎng)合下以及如何使用 XQuery 查詢、構(gòu)建和轉(zhuǎn)換 XML,而且還演示了如何監(jiān)控和分析 XQuery 表達(dá)式的性能執(zhí)行,從而找到更高效的方法來處理同一工作負(fù)載。

基于關(guān)系數(shù)據(jù)構(gòu)建 XML

在需要的情況下(例如,向 Web 服務(wù)發(fā)送結(jié)果),您可能要基于關(guān)系數(shù)據(jù)構(gòu)建 XML。要在 Oracle 數(shù)據(jù)庫(kù) 10g 第 2 版之前的版本中完成此任務(wù),通常需要使用 SQL/XML 生成函數(shù),如 XMLElement、XMLForest 和 XMLAgg()。在 Oracle 數(shù)據(jù)庫(kù) 10 g 第 2 版中,XQuery 將比這些函數(shù)更為高效。具體而言,在 XQuery 表達(dá)式內(nèi)部使用 ora:view XQuery 函數(shù),您可以查詢現(xiàn)有的關(guān)系表或視圖以及即時(shí)構(gòu)建 XML,從而不必通過關(guān)系數(shù)據(jù)顯式創(chuàng)建 XML 視圖。列表 1 中的 PL/SQL 代碼演示了如何使用 ora:view 基于示例數(shù)據(jù)庫(kù)模式 HR 的默認(rèn)員工關(guān)系表中存儲(chǔ)的數(shù)據(jù)構(gòu)建 XML 文檔。

列表 1:使用 ora:view 基于關(guān)系數(shù)據(jù)創(chuàng)建 XML

BEGIN

IF(DBMS_XDB.CREATEFOLDER('/public/employees')) THEN

DBMS_OUTPUT.PUT_LINE('Folder is created');

ELSE

DBMS_OUTPUT.PUT_LINE('Cannot create folder');

END IF;

COMMIT;

END;

/
DECLARE

XMLdoc XMLType;

BEGIN

SELECT XMLQuery(

'for $j in 1

return (

{

for $i in ora:view("HR", "employees")/ROW

where $i/EMPLOYEE_ID <= 102

return (

{xs:string($i/EMPLOYEE_ID)}

{xs:string($i/LAST_NAME)}

{xs:integer($i/SALARY)}

)} )'

RETURNING CONTENT) INTO XMLdoc FROM DUAL;

IF(DBMS_XDB.CREATERESOURCE('/public/employees/employees.xml', XMLdoc)) THEN

DBMS_OUTPUT.PUT_LINE('Resource is created');

ELSE

DBMS_OUTPUT.PUT_LINE('Cannot create resource');

END IF;

COMMIT;

END;

/

在列表 1 中的第一個(gè) PL/SQL 過程中,您只是在 XML 信息庫(kù)中創(chuàng)建了一個(gè)新文件夾。在該信息庫(kù)文件夾中,您隨后將存儲(chǔ)此處顯示的第二個(gè) PL/SQL 過程中創(chuàng)建的 XML 文檔。第二個(gè) PL/SQL 過程首先發(fā)出 SELECT 語句,該語句使用 XMLQuery SQL 函數(shù)基于關(guān)系數(shù)據(jù)構(gòu)建 XML。對(duì)于 XQuery 表達(dá)式(XMLQuery 在此處將其用作參數(shù))而言,請(qǐng)注意嵌套的 FLWOR 表達(dá)式中使用的 ora:view XQuery 函數(shù)。在該示例中,ora:view 獲取兩個(gè)輸入?yún)?shù),即“HR”和“employees”,它們指示該函數(shù)查詢屬于 HR 數(shù)據(jù)庫(kù)模式的員工表。因此,ora:view 將返回一個(gè)表示 HR.employees 表行的員工 XML 文檔序列。但為了節(jié)省結(jié)果文檔中的空間,只將前三個(gè)員工記錄傳遞給結(jié)果序列。這是通過在 FLWOR 表達(dá)式的 where 子句中指定 $i/EMPLOYEE_ID <= 102 而實(shí)現(xiàn)的。請(qǐng)注意 FLWOR 表達(dá)式的 return 子句中使用的 xs:string()xs:integer() XQuery 類型表達(dá)式。實(shí)際上,此處使用的這兩個(gè) XQuery 表達(dá)式不僅將 XML 節(jié)點(diǎn)值轉(zhuǎn)換為相應(yīng)的類型,而且還將提取這些節(jié)點(diǎn)值。隨后,生成的員工 XML 文檔作為 employees.xml 保存到之前在列表 1 中另一個(gè) PL/SQL 過程中創(chuàng)建的 /public/employees XML 信息庫(kù)文件夾。要確保此操作已完成,可執(zhí)行以下查詢:

SELECT XMLQuery('for $i in fn:doc("/public/employees/employees.xml")

return;

$i'

RETURNING CONTENT) AS RESULT FROM DUAL;

該查詢應(yīng)生成以下輸出:





100

King

24000





101

Kochhar

17000





102

De Haan

17000



在以上 XQuery 中,fn:doc XQuery 函數(shù)用于訪問 Oracle XML DB 信息庫(kù)中存儲(chǔ)的單個(gè) XML 文檔。但如果要處理一些具有相同或相似結(jié)構(gòu)的 XML 文檔(存儲(chǔ)在同一 XML 信息庫(kù)文件夾中),應(yīng)該怎么做?這種情況下,另一個(gè)用于處理 XML 信息庫(kù)資源的 XQuery 函數(shù)(即 fn:collection)可能會(huì)派上用場(chǎng)。本文稍后將介紹幾個(gè)有關(guān)如何使用 fn:collection XQuery 函數(shù)的示例。

查詢 XMLType 數(shù)據(jù)

XQuery 使您可以操作基于 XML 模式以及非基于模式的數(shù)據(jù)。以下示例演示了如何使用 XMLTable 函數(shù)從 OE 演示數(shù)據(jù)庫(kù)模式中查詢基于 PurchaseOrder XML 模式的 XMLType 表。

SELECT ttab.COLUMN_VALUE AS OrderTotal FROM purchaseorder,

XMLTable(

'for $i in /PurchaseOrder

where $i/User = "EABEL"

return;



{$i/Reference}



{fn:sum(for $j in $i/LineItems/LineItem/Part

return ($j/@Quantity*$j/@UnitPrice))}



'

PASSING OBJECT_VALUE

) ttab;

在以上示例中,您在 XMLTable 函數(shù)的 PASSING 子句中使用 OBJECT_VALUE 虛擬列將 purchaseorder 表作為上下文項(xiàng)傳遞給此處使用的 XQuery 表達(dá)式。XQuery 表達(dá)式計(jì)算用戶 EABEL 請(qǐng)求的每個(gè)購(gòu)買訂單的總計(jì),并為處理的每個(gè)訂單生成一個(gè) OrderTotal XML 元素。要訪問生成的 XML,請(qǐng)使用 SELECT 列表中的 COLUMN_VALUE 虛擬列。最終的輸出應(yīng)如下所示:

ORDERTOTAL

-------------------------------------------------------------



EABEL-20021009123338324PDT

1328.05





EABEL-20021009123335791PDT

2067.15





EABEL-20021009123336251PDT

289.6





EABEL-20021009123336382PDT

928.92

要獲得相同的最終結(jié)果,可以改用 XMLQuery 函數(shù)。但如果將上一個(gè)示例中使用的 XQuery 表達(dá)式參數(shù)傳遞給 XMLQuery(如下所示):

SELECT XMLQuery('for $i in /PurchaseOrder

where $i/User eq "EABEL"

return

{$i/Reference}



{fn:sum(for $j in $i/LineItems/LineItem/Part

return ($j/@Quantity*$j/@UnitPrice))}



'

PASSING OBJECT_VALUE

RETURNING CONTENT)

FROM purchaseorder;

則 XQuery 表達(dá)式返回的空序列將與 purchaseorder 表聯(lián)接,從而包含在查詢總結(jié)果集中。實(shí)際上,這意味著輸出將不僅包含為用戶 EABEL 請(qǐng)求的訂單生成的 OrderTotal 元素,而且還包含為 purchaseorder 表中存儲(chǔ)的所有其他訂單生成的空行(默認(rèn)情況下,purchaseorder 表包含 132 行)。從結(jié)果集中排除空行的方法之一是在 SELECT 語句的 WHERE 子句中使用 existsNode SQL 函數(shù),而不是在 XQuery 表達(dá)式中使用 WHERE 子句,如下所示:

SELECT XMLQuery('for $i in /PurchaseOrder

return

{$i/Reference}



{fn:sum(for $j in $i/LineItems/LineItem/Part

return ($j/@Quantity*$j/@UnitPrice))}



'

PASSING OBJECT_VALUE

RETURNING CONTENT) AS ordertotal

FROM purchaseorder

WHERE existsNode(OBJECT_VALUE, '/PurchaseOrder[User = "EABEL"]') = 1;

以上查詢與本部分開頭的 XMLTable 示例生成相同的輸出。


溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
成人在线免费看黄| 中文一区一区三区高中清不卡免费| 成人免费av片| 99久久免费看精品国产一区| 亚洲精品成人少妇| 日韩av网站在线免费观看| ckplayer中文字幕| 影音先锋在线亚洲| 亚洲综合色丁香婷婷六月图片| 亚洲一级二级三级在线免费观看| 午夜激情福利电影| 欧美资源在线| 国产在线拍揄自揄视频不卡99| 久久久久久有精品国产| 亚洲一二三四2021不卡| 日韩视频一区在线观看| 国产精品一区二区99| 欧美小视频在线观看| 在线观看日本一区| 国产精品久久天天影视| 在线欧美视频| 久久国产精品色av免费看| 国产男男gay体育生白袜| 人人妻人人藻人人爽欧美一区| 三区四区在线视频| 免费影视观看网站入口| 国产视频网站一区二区三区| 亚洲va国产va欧美va观看| 亚洲网站三级| 国产精品99精品无码视亚| 婷婷五月综合久久中文字幕| 精品一区二区在线观看| 红杏aⅴ成人免费视频| 色婷婷粉嫩av| 久久久久国产精品麻豆ai换脸| 午夜av一区二区三区| 先锋av资源色| 国产在线一区视频| 鲁丝一区鲁丝二区鲁丝三区| 久久久久亚洲AV成人无码国产| 91精品产国品一二三产区| 亚洲五月六月| 国产xxxxxx久色视频在| 未来日记在线观看| 精品小视频在线观看| 国产一区二区三区在线观看精品| 日本全棵写真视频在线观看| 亚洲第一页中文字幕| 国产porn在线| 在线看免费毛片| 日韩中文视频免费在线观看| 成年人午夜免费视频| 成人久久18免费网站图片| 亚洲在线激情| 91成人午夜| 亚洲精品一区二| 亚洲第一免费视频| eeuss一区| 最近中文字幕av| 午夜黄色一级片| 日韩视频在线免费| 国产高潮又爽又无遮挡又免费| 黑人操亚洲女人| 成人综合在线视频| 俄罗斯黄色一级片| 午夜亚洲性色福利视频| 手机看片国产日韩| 色综合一个色综合| 日本国产一区二区三区| 国产特级淫片免费看| 国产自产2019最新不卡| 成人xxxxx| 日韩精品无码一区二区三区| 伊人久久青草| 特级xxxxx欧美| 欧美最大成人综合网| 在线免费三级电影网站| 黄色录像二级片| 国产区精品在线| 老色鬼精品视频在线观看播放| 国产香蕉视频在线| 国产97免费视| 女人裸体免费网站| 激情综合中文娱乐网| 色老板视频在线观看| 日韩精品影院| 国产精品资源| 在线观看国产区| 在线观看欧美www| 国产美女无遮挡网站| 2欧美一区二区三区在线观看视频| 亚洲综合自拍| 你懂的网站在线| 97se亚洲综合在线| 国产树林野战在线播放| 亚洲一区二区三区视频在线| 少妇一晚三次一区二区三区| 午夜精彩视频在线观看不卡| 国产精品一区免费在线| 精品欧美一区二区三区精品久久| 欧美网色网址| 超碰97久久| 国产三级精品在线| 国内精品区一区二区三| 一级片黄色录像| h网站免费在线观看| 久久精品这里热有精品| 欧美日韩99| 欧美一区激情| 俄罗斯黄色录像| 91福利社在线观看| 亚洲深夜福利在线| 青青操在线播放| 亚洲情趣在线观看| 国产激情视频网站| jizz性欧美23| 国内自拍视频在线播放| 青丝免费观看高清影视| 欧美视频免费播放| 美国做受三级的视频播放| 蜜桃久久av| 日韩一级片一区二区| 免费观看的黄色网址| 国产精品suv一区二区三区| 麻豆精品在线视频| 日韩视频国产视频| 天天干人人干| 亚州精品国产| 国产精品久久久久久久7电影| 久久久精彩视频| 成人在线视频网址| 久久最新资源网| 国产裸体写真av一区二区| 亚洲在线视频网站| 久久免费手机视频| 久久久久久久久久久影院| 日韩在线麻豆| 国产高清视频在线播放| 欧美日韩亚洲视频一区| 久久av二区| 婷婷在线观看视频| 日韩电影在线观看电影| 国产精品草莓在线免费观看| 亚洲区第一页| 国产精品日韩电影| 极品校花啪啪激情久久| 欧美xxxx黑人又粗又长| 日韩成人av在线| 欧美一级在线看| 久久亚洲综合国产精品99麻豆精品福利| 亚洲午夜免费视频| 四虎永久免费地址| 99re在线国产| 91小视频免费看| 免费看的国产视频网站| 色婷婷av一区二区三区大白胸| 在线中文字幕网站| 欧美xxxxx精品| 久久精品一二三区| 亚洲第一成人在线| 粉嫩喷白浆久久| av色图一区| 亚洲一区二区三区高清| 影音先锋男人资源站在线观看| 日韩av三级在线| 欧洲中文字幕国产精品| 天海翼精品一区二区三区| 国产精品久久久久久久岛一牛影视| 国产精品91在线观看| 不卡视频在线看| 国产精品video| 欧美日韩日日摸| 久久网站免费视频| 特级黄色录像片| 欧美另类videos粗暴黑人| 你懂得影院夜精品a| 中文字幕有码热在线视频| 成人白浆超碰人人人人| 国产免费一区二区| 影音先锋男人在线资源| 精品少妇无遮挡毛片| 91一区二区三区在线播放| aa片在线观看视频在线播放| 久久久久久久久久久久久女国产乱| 日韩电影网1区2区| 四虎4hu影库永久地址| 群体交乱之放荡娇妻一区二区| 免费影视观看网站入口| 亚洲理论电影| 欧美mv和日韩mv国产网站| 丰满放荡岳乱妇91ww| 国产精品久久久久影院日本| 亚洲乱码国产乱码精品精大量| 日本新janpanese乱熟| 久久精品国产一区二区三| 麻豆一区二区三区四区精品蜜桃| 国产精品美女久久久| 日日干夜夜操| 亚洲va韩国va欧美va精品| 午夜精品在线| 久久久久久日本一区99| 超碰超碰超碰超碰超碰| 久操成人在线视频| 亚洲品质自拍视频| 伊人国产在线看一| 中文人妻av久久人妻18| 99re热视频| 欧美日韩综合一区二区| 亚洲天堂一区二区三区四区| 公侵犯人妻一区二区三区| 佐佐木明希电影| 成人在线电影网站| 久久综合九色综合欧美狠狠| 柠檬福利视频导航| 中文字幕精品www乱入免费视频| 久久久综合九色合综国产精品| 在线a免费看| 日本午夜精品| 久久99国产成人小视频| 二区视频在线观看| 亚洲精品国产精品乱码| 久久精品国产69国产精品亚洲| 中文字幕久久精品一区二区| 深夜精品寂寞黄网站在线观看| 性做久久久久久久| 精品久久视频| www.我爱av| 亚洲精品中文字幕99999| 国产aⅴ精品一区二区三区久久| 欧美一级高清大全免费观看| 在线中文字幕视频| 国内伊人久久久久久网站视频| 亚洲欧美一区二区三区在线| 久久亚洲精品毛片| 国产精品一区=区| 免费看h片网站| 国产精品入口麻豆免费| 爱福利一区二区| 91网站在线看| 又黄又爽毛片免费观看| 欧美艳星brazzers| 亚洲国产高清自拍| 咪咪网在线视频| 精品欧美日韩在线| 久久激五月天综合精品| 精品国产乱码久久久久久1区2匹| 伊人资源视频在线| 精品国产一区一区二区三亚瑟| 国产日韩欧美一区二区三区乱码| 精品国产一区二区三区小蝌蚪| 亚洲精品久久一区二区三区777| 免费欧美一级视频| 久久天堂夜夜一本婷婷麻豆| 中文在线a在线| 亚洲精品中文字幕乱码无线| 妞干网在线观看| 少妇bbbb搡bbbb| 久久精品国产精品青草| 伊人久久亚洲热| 一区二区三区在线资源| 国产精品免费看久久久无码| 亚洲第一区视频| 97中文字幕在线| 日韩a级黄色片| 欧美性在线观看| 一个色综合网站| www.精选视频.com| 巨胸大乳www视频免费观看| 国产污视频在线看| 99精品国产热久久91蜜凸| 久久久久免费精品国产| 日韩精品在线免费播放| 国产免费一级片| 性欧美在线看片a免费观看| 欧美xxxx黑人又粗又长精品| 91精品国产91久久久久| 国产精品久久久久久免费观看| 国产在线精品不卡| 国产91av视频在线观看| av一区二区在线播放| 九色精品蝌蚪| 国自产拍在线网站网址视频| 国产视频精品久久久| 国产一级免费观看| 中文字幕一区二区人妻电影丶| 在线成人一区| 日一区二区三区| 天天干天天插天天射| 欧美亚洲国产视频小说| 亚洲国产精品精华液2区45| 亚洲国产av一区二区三区| 精品一区二区成人精品| 成人性教育av免费网址| 色婷婷综合成人| 国产91精品久久久久久久网曝门| 日韩最新中文字幕| 亚洲黄色av| 国产一二三区在线视频| 超碰成人av| 成人免费视频一区二区| 久久成人激情视频| 91精品国产调教在线观看| 国产探花一区在线观看| 欧美精品一区二区三区免费| а中文在线天堂| 99久久亚洲精品| 一区av在线播放| 国产精九九网站漫画| 亚洲性生活大片| 日日操天天摸| 国产这里只有精品| 最近2019中文字幕第三页视频| shkd中文字幕久久在线观看| 国产毛片一区二区三区| 国模雨婷捆绑高清在线| 色婷婷国产精品综合在线观看| 亚洲大片av| 亚洲av无码乱码国产精品久久| 51成人精品网站| 中文字幕在线看高清电影| 日本黄色中文字幕| 日日噜噜夜夜狠狠视频欧美人| 小黄文在线观看| 先锋资源av在线| 伊人久久大香| 日本精品久久久久影院| 欧美6699在线视频免费| 国产精品suv一区|