课外天地 李树青学习天地数据库系统原理课件 → Oracle数据库的XML简单使用


  共有17363人关注过本帖树形打印复制链接

主题:Oracle数据库的XML简单使用

帅哥哟,离线,有人找我吗?
admin
  1楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 管理员
等级:管理员 帖子:1938 积分:26572 威望:0 精华:34 注册:2003/12/30 16:34:32
Oracle数据库的XML简单使用  发帖心情 Post By:2009/12/24 8:51:46 [只看该作者]

1、XMLType
drop table xmlExample;

create table xmlExample
(
  ID varchar2(32),name varchar2(200),data XMLType
);

insert into XMLExample values(sys_guid(),'Exec','<students><student><number>000001</number><name>黎明</name></student><student><number>000002</number><name>赵怡春</name></student></students>');

insert into XMLExample values(sys_guid(),'Exec',xmlType.createXML('<students><student id="1"><number>000001</number><name>黎明</name></student><student id="2"><number>000002</number><name>赵怡春</name></student></students>'));

select * from xmlExample;

2、关系和XML转换
从XML中查询得到关系结果(如果节点不存在,则检索出NULL,不会报错)
查询(别名不可少)
select i.data.extract('//student/name').getStringVal() as stuname, id from xmlExample i

select i.data.extract('//student/name/text()').getStringVal() as stuname, id from xmlExample i

select i.data.extract('//student[@id>1]/name').getStringVal() as stuname, id from xmlExample i

select extractvalue(data,'/students/student[@id=1]/name') as name from xmlExample
(只能返回一个记录)

select extractValue(value(i),'/name') xx from xmlexample x, table(XMLSequence(extract(x.data,'/students/student/name'))) i;

从关系表得到XML
select xmlforest(name,height) from student

[此贴子已经被作者于2010-12-11 20:25:14编辑过]

 回到顶部