永发信息网

关于Oracle 的问题?

答案:2  悬赏:80  手机版
解决时间 2021-08-01 07:36
  • 提问者网友:泪痣哥哥
  • 2021-07-31 13:27
关于Oracle 的问题?
最佳答案
  • 五星知识达人网友:人類模型
  • 2021-07-31 14:54

大致就是:oracle从9i开始支持一种新的数据类型---- xmltype,用于存储和管理xml数据,并提供了很多的functions,用来直接读取xml文档和管理节点。


举些例子:


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(''/root/name/@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=......)));



希望对你有帮助!

全部回答
  • 1楼网友:怀裏藏嬌
  • 2021-07-31 15:25

就是说Oracle 9i数据库支持原生的XML数据类型

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯