簡介Oracle xmltype
在向大家詳細(xì)介紹Oracle之前,首先讓大家了解下Oracle xmltype是什么,Oracle從9i開始支持一種新的數(shù)據(jù)類型---- xmltype,用于存儲(chǔ)和管理xml數(shù)據(jù),并提供了很多的functions,用來直接讀取xml文檔和管理節(jié)點(diǎn)。下面將介紹Oracle xmltype的一些基本使用。
1.建立含有Oracle xmltype數(shù)據(jù)類型的表create table abc (id number,xmldoc sys.xmltype);聲明xmltype型字段用:sys.xmltype。
2.向帶有xmltype類型的表插入帶有數(shù)據(jù)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.直接查詢Oracle xmltype字段里面的內(nèi)容得到id=1的value變臉的值select i.xmldoc.extract(''//name/a[@id=1]/@value'').getStringVal() as ennames, id from abc i得到a節(jié)點(diǎn)的值select id, i.xmldoc.extract(''//name/a/text()'').getStringVal() as truename from abc i得到節(jié)點(diǎn)id屬性的值Select hd.Data_t.extract(''/root/name/@id'').getStringVal() As Name FROM sehr_house_data hd
4.更新Oracle xmltype里面的數(shù)據(jù)update abc set xmldoc=updateXML(xmldoc,''//name/a[@id=1]/@value'',''some new value'') where ......(注意:如果里面沒有<a id="1">這個(gè)節(jié)點(diǎn),將不能update)
5.添加超過4k字節(jié)的xml文檔到xmltype型字段可以通過使用臨時(shí)表的辦法實(shí)現(xiàn):
◆先建立一個(gè)臨時(shí)的表,其中的一個(gè)字段是clob類型;
◆再將要寫入xmltype字段的xml doc寫入這個(gè)臨時(shí)的clob型的字段中;
◆最后insert into abc (id,xmldoc) values (abc_q.nextval , sys.xmlType.createXML((select content from 臨時(shí)表 where id=......)));
【編輯推薦】