Java中xmltype 用法_(1)oracle中XMLType类型的使用

Oracle9i之xmltype应用(1)

介绍了oracle9i的xmltype数据类型的基本使用

包括:建立含有xmltype数据类型的表

插入(insert)数据

查询(select)数据

更新(update)数据

添加超过4k字节的xml文档到xmltype型字段

适合初学者。

关键词: oracle9i xmltype

oracle从9i开始支持一种新的数据类型----

xmltype,用于存储和管理xml数据,并提供了很多的functions,用来直接读取xml文档和管理节点。下面将介绍xmltype的一些基本使用。

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('

id="1" value="some

values">abc

')

);

插入用 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 ......

(注意:如果里面没有

id="1">这个节点,将不能update)

Oracle 9i提供的XML内置特性:

Oracle 9i支持XMLType类型,它是一种Oracle

9i系统定义的对象类型。XMLType有内置的函数,有力的提供了推XML的创建,索检,索引等功能。

用户可以使用SQL函数动态的产生XML文档。这些函数有:SYS_XMLGEN和SYS_XMLAGG和PL/SQL包DBMS_XMLGEN。

XML特性

描述

XMLType

1、XMLType是oracle系统定义的数据类型,系统预定义了内部函数去访问XML数据。可以执行下面的任务:

2、创建XMLType列,在XMLType列上面使用内置的函数。

创建PL/SQL函数和存储过程,可以使用XMLType作为参数传入,或者作为返回参数传出。

3、在XMLType列上面存储、索引、处理XML数据。

DBMS_XMLGEN

DBMS_XMLGEN是一个PL/SQL包,提转换一个sql查询的结果到标准的xml格式,返回的是一个XMLTye类型或者是CLOB,DBMS_GEN是用c语言实现,放置在数据库的内核中。DBMS_XMLGEN包和DBMS_XMLQuery包的功能相相似。

SYS_XMLGEN

XMLGEN是一个SQL函数,它用来在sql查询中产生XML,DBMS_XMLGEN和其他包操作在查询水平,

SYS_XMLGEN把一个值,对象类型,XMLType实例转换成一个XML文档。SYS_XMLGEN返回的类型是XMLType。

SYS_XMLAGG

SYS_XMLAGG 是一个聚合函数,它聚合在XMLType类型上面。

SYS_XMLAGG聚合所有的输入的XML文档合片断并且通过连接XML片断合增加上一层的标签产生单个XML文档

UriTypes

UriType

类型家族能够在数据库中存储和查询Ur-refs,SYS.UriType是一抽象的数据类型,它提供功能去访问URL指向的数据。

SYS.HttpUriType和SYS.DBUriType是UriType的子类型。SYS.HttpUriType存储的是HTTP

URLs,DBUriType存储的是intra-database 参考。你可以定义自己的SYS.UriType的子类型。

如何使用XMLType

创建XMLType列:

CREATE TABLE warehouses(

warehouse_id NUMBER(3),

warehouse_spec SYS.XMLTYPE,

warehouse_name VARCHAR2(35),

location_id NUMBER(4));

插入XMLType列数据

INSERT into warehouses (warehouse_id, warehouse_spec) VALUES (1001,

sys.XMLType.createXML(

Owned

’));

createXML的输入参数可以是任何的返回为varch

ar2的表达式或者式CLOB。CreateXML能够检测XML是否的符合合适的,但是它不能检查XML的有效性。

使用在XMLType列上sql查询

SELECT

w.warehouse_spec.extract(''/Warehouse/Building/text()'').getStringVal()

"Building"

FROM warehouses w

warehouse_spec是一个XMLType列,

Extract()是操作在上面的函数

查询结果如下:

Building

-----------------

Owned

更新XMLType的列

UPDATE warehouses SET warehouse_spec =

sys.XMLType.createXML(

Leased

’));

删去XMLType的列

DELETE FROM warehouses e

WHERE

e.warehouse_spec.extract(’//Building/text()’).getStringVal()

= ’Leased’;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值