關於Oracle的XMLType型別的資料庫操作

2021-06-25 22:23:12 字數 1237 閱讀 1529

oracle從9i開始支援一種新的資料型別- xmltype,用於儲存和管理xml資料,並提供了很多的functions,用來直接讀取xml文件和管理節點。下面介紹xmltype的一些基本使用。

1.建立含有xmltype資料型別的表

create table test (

id number,

xmldoc sys.xmltype

);宣告xmltype型字段用:sys.xmltype

2.向帶有xmltype型別的表插入帶有資料

insert into test (id,xmldoc) values (abc.nextval , sys.xmltype.createxml('' test

'') );

插入用 sys.xmltype.createxml(''xml doc'')

3.直接查詢xmltype欄位裡面的內容

得到id=1的value變臉的值

select t.xmldoc.extract(''//name/a[@id=1]/@value'').getstringval() as ennames, id from test t

得到a節點的值

select id,t.xmldoc.extract(''//name/a/text()'').getstringval() as truename from test t

4.更新xmltype裡面的資料

update abc set xmldoc=updatexml(xmldoc,''//name/a[@id=1]/@value'',''some new value'') where ......

(注意:如果裡面沒有這個節點,將不能update)

5.新增超過4k位元組的xml文件到xmltype型字段

可以通過使用臨時表的辦法實現:

先建立乙個臨時的表temp,其中的乙個欄位是clob型別;

再將要寫入xmltype欄位的xml doc寫入這個臨時的clob型的字段中;

最後insert into test (id,xmldoc) values (test_q.nextval , sys.xmltype.createxml((select content from temp where id=......)));

6. 更新表中xmltype欄位的資料

update test t set t.xmldoc = sys.xmltype.createxml(select content from temp where id=……);

關於oracle的啟動

有這麼一道題,是關於在例項啟動的時候,哪些檔案在某個階段是不是可以改動的,我覺得這個題是乙個很基礎的題,對於理解oracle有很大的幫助。於是我就查了一下相關資料,分享一下,適合初學者看。1 shutdown nomount 讀取引數檔案,根據引數檔案的記錄,配置sga,啟動後台程序。這個階段因為只...

關於oracle的啟動

有這麼一道題,是關於在例項啟動的時候,哪些檔案在某個階段是不是可以改動的,我覺得這個題是乙個很基礎的題,對於理解oracle有很大的幫助。於是我就查了一下相關資料,分享一下,適合初學者看。1 shutdown nomount 讀取引數檔案,根據引數檔案的記錄,配置sga,啟動後台程序。這個階段因為只...

關於Oracle分頁

connected to oracle9i enterprise edition release 9.2.0.6.0 connected as dev sql sql set timing on sql create table test table as 2 select rownum x 3 f...