oracle XMLType字段使用方法
2019獨角獸企業重金招聘Python工程師標準>>>
剛才研究了一下XMLType字段使用方法 ,現在給大家介紹一下。? 主要是新增、查詢、修改XMLType字段
表結構:
?
?
建表sql:
?
--?Create?table
create?table?T_BOOK
(
??ID??????????VARCHAR2(32)?not?null,
??SYS_ID??????VARCHAR2(32),
??TYPE????????VARCHAR2(200),
??LIBRARY?????VARCHAR2(32),
??TITLE???????VARCHAR2(200),
??CREATE_USER?VARCHAR2(64),
??SUBJECT?????VARCHAR2(200),
??DESCRIPTION?VARCHAR2(200),
??PUBLISHER???VARCHAR2(200),
??CONTRIBUTOR?VARCHAR2(200),
??CREATE_DATE?DATE,
??FORMAT??????VARCHAR2(200),
??INENTIFIER??VARCHAR2(200),
??SOURCE??????VARCHAR2(200),
??LANGUAGE????VARCHAR2(200),
??OTHER_DESC??XMLTYPE
)
tablespace?DCP
??pctfree?10
??initrans?1
??maxtrans?255
??storage
??(
????initial?64K
????minextents?1
????maxextents?unlimited
??);
--?Add?comments?to?the?table?
comment?on?table?T_BOOK
??is?'數字資源結構表';
--?Add?comments?to?the?columns?
comment?on?column?T_BOOK.LIBRARY
??is?'分區鍵';
--?Create/Recreate?primary,?unique?and?foreign?key?constraints?
alter?table?T_BOOK
??add?constraint?PK_T_BOOK?primary?key?(ID)
??using?index?
??tablespace?DCP
??pctfree?10
??initrans?2
??maxtrans?255
??storage
??(
????initial?64K
????minextents?1
????maxextents?unlimited
??);
?
?
新增記錄:
?
insert?into?t_book?
(id,other_desc)?
values?(1?,?sys.xmlType.createXML('<name><a?id="1"?value="some?values">abc</a></name>')?);
?
insert?into?t_book?
(id,other_desc)?
values?(2?,?sys.xmlType.createXML('<name><a?id="1"?value="some?values">abc</a><b?id="2"?value="some2?values">abc2</b></name> ')?);
?
?
查詢記錄:
查詢一個字段中不存在的元素時,返回null值
?
得到id=1的value變量的值
select?i.other_desc.extract('//name/a[@id=1]/@value ').getStringVal()?as?ennames,?id?from?t_book?i
?
rowid ennames id
1 some?values 1
2 some?values 2
?
得到a節點的值
select?id,i.other_desc.getclobval(),?i.other_desc.extract('//name/a/text()').getStringVal()?as?truename?from?t_book?i
?添加節點
update?ris_u_res.t_data_402?t
set?t.other_description=insertchildxml(other_description,
'//xmlType','COPYRIGHT',xmltype('<COPYRIGHT>1</COPYRIGHT>'))
????where?t.id='721577'?
?
得到b節點id屬性的值
Select?i.other_desc.extract('/name/b/@id').getStringVal()????As?Name?FROM?t_book?i?where?i.id='1'
?
修改記錄:
修改一個字段中不存在的元素時,不會對數據有修改,但是1rows updated,所以需要提交事務。
?
更新id為1的記錄的XMLType字段的a元素的id為1的value的值為some?new?value
update?t_book?set?other_desc=updateXML(other_desc,'//name/a[@id=1]/@value ','some?new?value')?where?id=1
更新節點里面的數據
?
update?T_DATA_892?t
???set?t.other_description?=?updateXML(t.other_description,
???????????????????????????????????????'//xmlType/SERIALNUM_905S',
???????????????????????????????????????'<SERIALNUM_905S>12072</SERIALNUM_905S>')
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?where?t.id='1591083'
轉載于:https://my.oschina.net/kt431128/blog/224713
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的oracle XMLType字段使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到很多条小蛇预示着什么
- 下一篇: Angularjs 通过asp.net