[文章摘要]介紹了oracle9i的xmltype數據類型的基本使用
包括:建立含有xmltype數據類型的表
插入(insert)數據
查詢(select)數據
更新(update)數據
添加超過4k字節的xml文檔到xmltype型字段
適合初學者。
關鍵詞: oracle9i xmltype
oracle從9i開始支持一種新的數據類型---- xmltype,用於存儲和管理xml數據,並提供了很多的functions,用來直接讀取xml文檔和管理節點。下面將介紹xmltype的一些基本使用。
1.建立含有xmltype數據類型的表
create table abc (id number,xmldoc sys.xmltype);
聲明xmltype型字段用:sys.xmltype
2.向帶有xmltype類型的表插入帶有數據
insert into abc (id,xmldoc) value (abc.nextval , sys.xmlType.createXML(''<name><a id="1" value="some values">abc</a></name>'') );
插入用 sys.xmlType.createXML(''some xml doc'')
3.直接查詢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(''/name/a/@id'').getStringVal() As Name FROM sehr_house_data hd
4.更新xmltype裏面的數據
update abc set xmldoc=updateXML(xmldoc,''//name/a[@id=1]/@value'',''some new value'') where ......
(注意:如果裏面沒有<a id="1">這個節點,將不能update)
5.添加超過4k字節的xml文檔到xmltype型字段
可以通過使用臨時表的辦法實現:
先建立一個臨時的表,其中的一個字段是clob類型;
再將要寫入xmltype字段的xml doc寫入這個臨時的clob型的字段中;
最後insert into abc (id,xmldoc) values (abc_q.nextval , sys.xmlType.createXML((select content from 臨時表 where id=......)));
Oracle 9i提供的XML內置特性: Oracle 9i支持XMLType類型,它是一種Oracle 9i系統定義的對象類型。XMLType有內置的函數,有力的提供了推XML的創建,索檢,索引等功能。 用戶可以使用SQL函數動態的產生XML文檔。這些函數有:SYS_XMLGEN和SYS_XMLAGG和PL/SQL包DBMS_XMLGEN。
|