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(

’<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列,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’;

Oracle9i之xmltype应用(2)的更多相关文章

  1. Oracle9i之xmltype应用(1)

    oracle从9i开始支持一种新的数据类型-- xmltype,用于存储和管理xml数据,并提供了很多的functions,用来直接读取xml文档和管理节点.下面将介绍xmltype的一些基本使用. ...

  2. oracle xmltype导入并解析Excel数据 (四)特别说明

    1.Excel导出,此处没有给出 2.错误原因在中间表,T_EXCEL_IMPORT_GENERATION,其中errormsg不为空的数据 3,中间表入库过程: 需要自己实现,为一个存储过程,存储过 ...

  3. oracle xmltype导入并解析Excel数据 (三)解析Excel数据

    包声明 create or replace package PKG_EXCEL_UTILS is -- Author: zkongbai-- Create at: 2016-07-06-- Actio ...

  4. oracle xmltype导入并解析Excel数据 (一)创建表与序

    表说明: T_EXCEL_IMPORT_DATASRC: Excel数据存储表,(使用了xmltype存储Excel数据) 部分字段说明: BUSINESSTYPE: Excel模板类型,一个Exce ...

  5. oracle xmltype导入并解析Excel数据--前言

    通常,很多的时候,我们需要导入Excel数据到系统中,但是Excel数据需要我们去各种校验,比如身份证校验,手机号码校验等等. 校验失败的数据,提供Excel导出错误原因,提示给用户. 如此,如果校验 ...

  6. cxf(3.1.1) 客户端异常 请使用 @XmlType.name 和 @XmlType.namespace 为类分配不同的名称。

    最近项目使用webService 于是就使用了最新版本 3.1.1 . cxf 客户端调用时老是出现这个错误,综合网上各种资料修改如下,问题解决 "@XmlType.name 和 @XmlT ...

  7. regexp_substr在oracle9i的替换方案

    regexp_substr()方法在oracle9i尚不存在,是从oracle10g开始新增,如下为替换解决方法. SELECT regexp_substr('|83~GT67XVFU0RCVIV|6 ...

  8. JAXB - Annotations, Annotation for Classes: XmlType

    This annotation adds information that would be available from a schema type, but isn't implied by a ...

  9. CXF之"@XmlType.name 和 @XmlType.namespace 为类分配不同的名称"错误

    CXF 的 wsdl2java.bat 生产的代码,拷贝到目录,进行调研 web service接口时,抛出错误: Exception in thread "main" javax ...

随机推荐

  1. Ajax步骤

    var request = new XMLHttpRequest(); request.open("GET","get.php",ture); request. ...

  2. MVC全局用户验证之HttpModule

    在请求进入到MVC的处理mcvHandler之前,请求先到达HttpModule,因此可以利用HttpModule做全局的用户验证. HttpModule MVC5之前的版本基于system.web. ...

  3. Java String 常用类的使用方法

    public static void main(String[] args) { // TODO Auto-generated method stub /* * 使用for循环遍历数组 * int a ...

  4. PS插件开发plugin

    Photoshop插件开发 VC++制作Photoshop自动化插件:http://blog.sina.com.cn/s/blog_73c52fda0101c7hw.html Photoshop 的扩 ...

  5. 【转】Android系统概览

    这篇文章其实原文叫 <老罗的Android之旅>导读PPT 是罗升阳的博客,我觉得用“Android系统概览”作为标题更贴切些,对于在应用层已经开发了一段时间的人来说,读完之后会有很多体会 ...

  6. windows phone 8 新增功能:从一个应用程序启动另一个程序(file association 和 Protocol association两种方式)

    一. 启动手机预装内置程序打开文件file association 这里以打开word文档为例子 string fileToLaunch = @"HelloKitty.docx"; ...

  7. 父级(display:none)隐藏时,子节点的高度获取。

    当父节点display:none的时候,子节点的高度是0获取不到. 解决办法:用visibility替换display就可以了.

  8. Kotlin 函数

    至于什么函数,在计算机里面就是一个密闭的执行程序的代码块(个人理解) 我们先来看看什么是函数 fun main(agrs : Array<String>) { println(" ...

  9. openfiler的介绍与使用

    一. Openfiler简介 Openfiler 能把标准x86/64架构的系统变成一个强大的NAS.SAN存储和IP存储网关,为管理员提供一个强大的管理平台,并能能应付未来的存储需求.依赖如VMwa ...

  10. 上课总结-模电chapter 1

    Chapter 1 半导体器件 一.杂质半导体(N型半导体/P型半导体) N型 p型 特点 N型 将少量5价元素参入四价元素中==> 电子多 ==>电子为多子 p型 将少量3价元素参入四价 ...