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. XE StringGrid应用(G1属性触发G2)

    unit UnitMain; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System. ...

  2. C# 真正完美的 汉字转拼音

    网上有很多说自己整理的汉字转拼音是完美的,但使用后才发现都是半吊的瓶子,问题多多. 常见的生僻字,或多音字识别,转换后简直让人感觉可怕. 主流的转换有三种:hash匹配,Npinyin,微软PinYi ...

  3. try catch finally的用法

    http://hi.baidu.com/vincentwen/blog/item/b92d0923f1e4c64793580757.html try catch finally 1.将预见可能引发异常 ...

  4. Windows系统版本判定那些事儿[转]

    Windows系统版本判定那些事儿 转自CSDN,原文链接,我比较不要脸, 全部给复制过来了 前言 本文并不是讨论Windows操作系统的版本来历和特点,也不是讨论为什么没有Win9,而是从程序员角度 ...

  5. .Net Core .Net Core V1.0 创建MVC项目

    .Net Core V1.0 创建MVC项目 创建MVC项目有两种方式: 一.创建Web项目:(有太多没用的东西要去删太麻烦) 2.项目目录结构: 此种方法要注意的是,会创建好多个json文件,下面就 ...

  6. 如何从Spring官网下载Spring的jar包

    Spring官网:https://spring.io/ 进入官网点击PRODECTS 然后点击Spring Framework 进入下面的页面点击小猫图标: 之后再下面的页面持续向下滚动,找到下图我标 ...

  7. cinder侧卸载卷流程分析

    cinder侧卸载卷分析,存储类型以lvm+iscsi的方式为分析基础在虚机卸载卷的过程中,主要涉及如下三个函数1)cinder.volume.api.begin_detaching 把volume的 ...

  8. mysql 行转列,对列的分组求和,对行求和

    CREATE TABLE students( id INT PRIMARY KEY, NAME VARCHAR(11)); CREATE TABLE courses( id INT PRIMARY K ...

  9. iOS App 内部跳转(设置、Wifi、蓝牙...)关键词

    1.iOS 10 以前: 蜂窝网络:prefs:root=MOBILE_DATA_SETTINGS_ID Wi-Fi:prefs:root=WIFI 定位服务:prefs:root=LOCATION_ ...

  10. java 列表与集合总结

    列表与集合 (一切输出都用for each!丢弃迭代器) 列表List 1 顺序表 Arraylist  适用于静态查找2   链式双向表 Linkedlist 适用于增删该查3 (容器) Vecto ...