`
qzterminator
  • 浏览: 22987 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle:Oracle9i之xmltype应用

    博客分类:
  • DB
阅读更多
这几天在研究9I下的XMLTYPE数据类型,这在解析和查找生成XML方面都很方便,在网上搜到了一篇入门级的文章,转贴下来^_^(有几个地方小改了一下。)



[文章摘要]介绍了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(''<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] [2] [3] [4] [5]

$False$


Oracle9i之xmltype应用(2)
2007年07月12日 星期四 15:25


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

欢迎光临学网,点击这里查看更多文章教程 [1] [2] [3] [4] [5]


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指向的数据。

文章整理:学网 http://www.xue5.com (本站) [1] [2] [3] [4] [5]

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(

’<Warehouse whNo="100">

<Building>Owned</Building>

</Warehouse>’));

createXML的输入参数可以是任何的返回为varchar2的表达式或者式CLOB。CreateXML能够检测XML是否的符合合适的,但是它不能检查XML的有效性。


使用在XMLType列上sql查询
SELECT

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

"Building"

FROM warehouses w

warehouse_spec是一个XMLType列,欢迎光临学网,收藏本篇文章 [1] [2] [3] [4] [5]



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

查询结果如下:

Building

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

Owned

更新XMLType的列
UPDATE warehouses SET warehouse_spec =

sys.XMLType.createXML(

’<Warehouse whono="200">

<Building>Leased</Building>

</Warehouse>’));

删去XMLType的列
DELETE FROM warehouses e

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

= ’Leased’;


资料来源:学网(www.xue5.com),原文地址:http://www.xue5.com/itedu/200707/140291_2.html
分享到:
评论
1 楼 tianlang0101 2009-09-18  
marked

相关推荐

    oracle8i_9i数据库基础

    Oracle 8i 和 9i 是 Oracle 公司在20世纪末至21世纪初推出的两个重要版本的数据库管理系统。这两个版本在当时都引入了许多创新功能,为数据库管理提供了强大的支持。以下是对这两个版本的一些关键知识点的详细介绍:...

    Oracle 9i Web开发指南

    Oracle 9i Web开发指南是针对使用Oracle 9i数据库进行Web应用程序开发的专业参考资料。这一版本的Oracle数据库在Web开发领域提供了丰富的特性和工具,旨在帮助开发者构建高效、可扩展且安全的网络应用。以下是对...

    oracle 9I.rar

    Oracle 9I是一款由甲骨文公司(Oracle Corporation)发布的数据库管理系统,主要针对企业级应用,提供高效的数据存储和管理功能。在这个“oracle 9I.rar”压缩包中,包含了Oracle 9I客户端的组件,使得用户无需完整...

    oracle 9i dsi

    8. **XML支持**:Oracle 9i引入了对XML的原生支持,DSI允许XML数据直接存储在数据库中,并提供了XML查询和处理功能,如XMLType和XQuery。 9. **Web应用开发**:DSI与Oracle Application Server配合,支持开发和部署...

    Oracle8i_9i数据库基础

    Oracle9i则进一步增强了这些特性,特别是在数据仓库、Web服务和网格计算方面有显著提升。 二、Oracle8i新特性 1. Internet特性:Oracle8i加强了与Internet的集成,包括支持HTTP、FTP协议,提供Web应用服务器功能。 ...

    Oracle9i Guides2.rar

    - **XML支持**:Oracle9i首次内置了对XML的支持,允许直接存储和检索XML数据,提供XML DB选项和XMLType数据类型。 - **自动存储管理(Automatic Storage Management, ASM)**:这是一个集成的存储管理解决方案,...

    Oracle 9i、10g、11g通用jdbc驱动包

    Oracle 9i、10g、11g通用JDBC驱动包是Oracle公司为Java开发者提供的数据库连接驱动,使得Java应用程序能够与Oracle数据库进行交互。这些驱动程序遵循Java Database Connectivity (JDBC) API规范,是Java平台上的标准...

    Oracle Database Architecture 9i and 10g Programming Techniques and Solutions

    Oracle数据库架构9i和10g是Oracle公司在21世纪初发布的两个重要版本,它们在数据库管理和编程领域具有深远的影响。这两个版本引入了许多创新技术,为数据库管理员(DBA)和开发人员提供了更高效、更可靠的数据库解决...

    oracle9i帮助文档.zip

    Oracle 9i是一款由甲骨文公司(Oracle Corporation)开发的关系型数据库管理系统,它在20世纪末到21世纪初广泛应用于企业级的数据存储和管理。Oracle 9i的全称是Oracle Database 9i,它引入了许多创新功能,提升了...

    Oracle_9i数据库管理员指南

    8. **XML支持**:Oracle 9i开始全面支持XML,包括XMLType数据类型,允许在数据库中直接存储和处理XML文档,增强了数据库与Web服务的集成能力。 9. **PL/SQL增强**:Oracle的编程语言PL/SQL在9i版本中得到了进一步...

    Oracle9i XML网络数据库开发指南(PDF)

    通过学习《Oracle9i XML网络数据库开发指南》,开发者不仅可以掌握如何在Oracle9i中存储和处理XML数据,还能了解到如何构建基于XML的网络应用程序,提高数据交换的效率和灵活性。这本书详细介绍了每个主题,包括实例...

    oracle-9i-basics-pdf-

    10. **XML支持**:Oracle 9i开始内置XML支持,允许直接在数据库中存储和处理XML文档,提供了XMLType数据类型和XMLDB存储引擎。 了解并掌握这些Oracle 9i基础知识,对于数据库管理员、开发人员以及对数据库有兴趣的...

    oracle 9i数据库培训教程

    3. XML支持:Oracle 9i开始支持XML存储和查询,提供XMLType数据类型和XQuery功能。 通过这个Oracle 9i数据库培训教程,你将全面掌握Oracle 9i数据库的使用和管理,无论是进行日常维护还是解决复杂的性能问题,都能...

    Oracle 9i数据库高级管理.rar

    Oracle 9i数据库是Oracle公司推出的数据库管理系统的一个重要版本,主要针对企业级应用提供高性能、高可用性和可扩展性。这个高级管理主题涵盖了多个关键领域,包括但不限于数据存储、性能优化、安全策略、备份与...

    oracle9i资料

    5. **XML支持**:Oracle 9i加强了对XML的支持,提供了内置的XMLType数据类型,可以直接在数据库中存储和处理XML文档,简化了XML数据的管理和查询。 6. **数据仓库**:Oracle 9i提供了高级的数据仓库工具,如星型...

    Oracle9i学习资料

    5. **XML支持**:随着XML在互联网上的广泛应用,Oracle9i增强了对XML的支持,包括XML DB(XML数据库)和XMLType数据类型,方便存储和处理XML文档。 6. **网络数据库**:Oracle9i引入了网络数据库的概念,支持分布式...

    Oracle9i XML 网络数据库开发指南.rar

    2. **Oracle9i对XML的支持**:Oracle9i引入了XMLType数据类型,使得XML文档可以直接存储在数据库中。这包括如何创建和操作XMLType列,以及利用XMLDB存储和检索XML数据。 3. **XML索引**:为了提高XML数据的查询性能...

    oralce9i数据库基础(英文原版)

    《Oracle9i New Feature for Adminstrators student Guide》分为Volume 1和Volume 2两部分,详细介绍了这些特性,通过实例和练习帮助读者理解和应用。通过深入研读这两部教材,读者将能全面了解Oracle9i数据库的管理...

    Oracle9i网络数据库开发指南.pdf

    ### Oracle9i网络数据库开发...以上内容总结了《Oracle9i网络数据库开发指南》中的关键知识点,涵盖了XML在Oracle9i中的应用、建模、管理以及特定场景下的实践指南,旨在帮助读者更好地理解和掌握Oracle9i中的XML技术。

Global site tag (gtag.js) - Google Analytics