亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PLSQL中XML類型字段分析

發布時間:2021-11-10 14:59:38 來源:億速云 閱讀:329 作者:iii 欄目:關系型數據庫

這篇文章主要講解了“PLSQL中XML類型字段分析”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“PLSQL中XML類型字段分析”吧!

xmltype: 

             Oracle9i 支持一種新的系統定義數據類型,名為XMLType。XMLType提供了多種內建的成員函數,為創建、提取和索引存儲在Oracle9i中的XML數據 提供了一種強有力的機制。作為一種新的數據類型,XMLType可用作表格和視圖中的各個列的數據類型,并可在PL/SQL存儲過程中作為參數、返回值和 變量使用。

      利用XMLType和這些功能,SQL開發者既可利用關系型數據庫的強大能力,也可在XML的環境下工作。與此類似,XML開發者一方面可利用XML標準的強大能力,另一方面又能在關系型數據庫的環境下工作。

  • 建立含有xmltype數據類型的表

CREATE TABLE abc 
(id number,
xmldoc sys.xmltype);

    聲明xmltype型字段用:sys.xmltype

  • 向帶有xmltype類型的表插入帶有數據

INSERT INTO abc
  (id
  ,xmldoc) VALUE
  (abc.nextval
  ,sys.xmltype.createxml('<name><aid="1" value="some values">abc</a></name>'));

    插入用 sys.xmlType.createXML('some xml doc')

  • 直接查詢xmltype字段里面的內容

     得到id=1的value變量的值

SELECT i.xmldoc.extract('//name/a[@id=1]/@value').getstringval() AS ennames
      ,id
FROM   abc i

      得到a節點的值

SELECT id
      ,i.xmldoc.extract('//name/a/text()').getstringval() AS truename
FROM   abc i

     得到節點id屬性的值

SELECT hd.data_t.extract('/root/name/@id').getstringval() AS NAME
FROM   sehr_house_data hd
  • 更新xmltype里面的數據

UPDATE abc
SET    xmldoc = updatexml(xmldoc, '//name/a[@id=1]/@value', 'some new value')
WHERE  ......

(注意:如果里面沒有<aid="1">這個節點,將不能update)

  • 添加超過4k字節的xml文檔到xmltype型字段

可以通過使用臨時表的辦法實現:
先建立一個臨時的表,其中的一個字段是clob類型;
再將要寫入xmltype字段的xml doc寫入這個臨時的clob型的字段中;
最后insertinto abc (id,xmldoc) values (abc_q.nextval , sys.xmlType.createXML((select contentfrom 臨時表whereid=......)));

EXISTSNODE
--EXISTSNODE函數檢查XML中的某一個節點是否存在。如果存在,返回1,否則返回0。  
SELECT existsnode(VALUE(a), 'Corporation/Name')
FROM   TABLE(xmlsequence(extract(v_xml, 'Root/Corporation'))) a;
SELECT COUNT(*)
FROM   TABLE(xmlsequence(extract(v_xml, 'Root/Corporation'))) a
WHERE  existsnode(xmlvalue, 'Corporation/Name[@id=1]') = 1;
EXTRACTVALUE
--EXTRACTVALUE()是從某個節點中讀取值。ExtractValue只能返回一個確切的位置節點的值,如果存在多個相同節點,Oracle就會報錯 。
SELECT extractvalue(VALUE(a), 'Corporation/Name') cor_nam
FROM   TABLE(xmlsequence(extract(v_xml, 'Root/Corporation'))) a;
EXTRACT
--EXTRACT函數返回一個XML文檔的一個節點樹,或者某一節點下所有符合條件的節點。
  SELECT extract(VALUE(a), 'Corporation/Persons/Person') cor_person
  
  FROM   TABLE(xmlsequence(extract(v_xml, 'Root/Corporation'))) a;
Xmlsequence、TABLE
--利用xmlsequence()和table()返回符合條件的節點的值 。
SELECT extract(VALUE(a), 'Corporation/Persons/Person') cor_person
FROM   TABLE(xmlsequence(extract(v_xml, 'Root/Corporation'))) a;
實例:
SELECT sys.xmltype.createxml(t.value1).extract('//TResponse/OrderInfo/OrderInfos/text()')
       .getclobval()
FROM   abc t

感謝各位的閱讀,以上就是“PLSQL中XML類型字段分析”的內容了,經過本文的學習后,相信大家對PLSQL中XML類型字段分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

星子县| 额济纳旗| 江都市| 环江| 普兰店市| 宾阳县| 隆回县| 萝北县| 鲁山县| 武隆县| 孙吴县| 垣曲县| 大新县| 太保市| 宁乡县| 江口县| 林西县| 保康县| 昌都县| 昆明市| 高阳县| 临江市| 绥化市| 伊金霍洛旗| 原阳县| 长葛市| 廉江市| 根河市| 喀喇沁旗| 盘山县| 绥江县| 汕尾市| 丰镇市| 陕西省| 额济纳旗| 视频| 平舆县| 馆陶县| 青州市| 循化| 南投市|