`

XMLType Datatype In Oracle9i

阅读更多

 

Oracle9i has a dedicated XML datatype called XMLTYPE. It is made up of a CLOB to store the original XML data and a number of member functions to make the data available to SQL. In this article I'll present a simple example of it's use.

First we must create a table to store XML documents using the XMLTYPE datatype:

CREATE TABLE tab1 (
  col1  SYS.XMLTYPE
);

The table can be populated using XML from a CLOB, VARCHAR2 or an XMLTYPE generated from a query:

DECLARE
  v_xml   SYS.XMLTYPE;
  v_doc   CLOB;
BEGIN
  -- XMLTYPE created from a CLOB
  v_doc := '<?xml version="1.0"?>' || Chr(10) || ' <TABLE_NAME>MY_TABLE</TABLE_NAME>';
  v_xml := sys.xmltype.createXML(v_doc);

  INSERT INTO tab1 (col1) VALUES (v_xml);

  -- XMLTYPE created from a query
  SELECT SYS_XMLGen(table_name)
  INTO   v_xml
  FROM   user_tables
  WHERE  rownum = 1;

  INSERT INTO tab1 (col1) VALUES (v_xml);

  COMMIT;
END;
/

The data in the table can be viewed using the following query:

SET LONG 1000
SELECT a.col1.getStringVal()
FROM   tab1 a;

A.COL1.GETSTRINGVAL()
----------------------------------------------------------------------------------------------------
<?xml version="1.0"?>
 <TABLE_NAME>MY_TABLE</TABLE_NAME>

<?xml version="1.0"?>
<TABLE_NAME>TAB1</TABLE_NAME>

2 rows selected.

SQL>

We can extract the value of specific tags using:

SELECT a.col1.extract('//TABLE_NAME/text()').getStringVal() AS "Table Name"
FROM   tab1 a
WHERE  a.col1.existsNode('/TABLE_NAME')  = 1;

Table Name
----------------------------------------------------------------------------------------------------
MY_TABLE
TAB1

2 rows selected.

SQL>

In the above example I was expecting a string, but NUMBERs and CLOBs can be returned using getNumVal() and getClobVal() respectively. Since the XMLTYPE datatype can contain any XML document it is sensible to limit the query to those rows which contain the relevant tags, hence the WHERE clause.

 

 

DECLARE
enq_msgid      RAW(16);
eopt           dbms_aq.enqueue_options_t;
mprop          dbms_aq.message_properties_t;
xd    sys.XMLType ;
str  varchar(32767);
BEGIN

    xd := sys.XMLType.createXML(
    '<ControlParam>' ||
    '    <IFID>EAIG0318X01001</IFID>' ||
    '    <TXID>20100714_104250_osb_0000000001</TXID>' ||
    '</ControlParam>'
    );
    
    dbms_aq.enqueue(
          queue_name => 'XXSB_BILL.XXSB_IN_QUEUE',
          enqueue_options => eopt,
          message_properties => mprop,
          payload => xd,
          msgid => enq_msgid);

commit;
END;

 

分享到:
评论

相关推荐

    Oracle 9i Web开发指南

    6. **XML支持**:Oracle 9i引入了内置的XML处理能力,包括XMLType数据类型,允许直接在数据库中存储和查询XML文档,提高了XML数据的处理效率。 7. **WebLogic Server**:Oracle 9i常常与WebLogic Server搭配使用,...

    oracle 9I.rar

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

    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 9i数据库高级管理.rar

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

    Oracle9i OCP

    Oracle9i开始支持XML,提供了XMLType数据类型,可以直接存储和操作XML文档,且支持XML Schema和XSLT转换。 Oracle9i OCP的培训教材将涵盖以上所有知识点,并可能包含实际操作练习和案例研究,以帮助学习者掌握...

    oracle 9i dsi

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

    Oracle 9i XML Database Developer’s Guide - Oracle XML DB Release

    XMLType 是 Oracle 9i XML 数据库中的一种基本数据类型,用于存储 XML 数据。XMLSchema 定义了 XML 文档的结构,而 XMLElement 是一种特殊的 XML 数据类型,用于存储 XML 元素。 XML 处理 Oracle 9i XML 数据库...

    oracle 9i for windows nt_2000数据库系统培训教程,如果是系统管理员而且是数据库开发者,那么这是必须的。

    Oracle 9i引入了对XML的内置支持,包括XMLType数据类型、XMLDB存储方案和XQuery处理。这使得数据库可以直接存储和处理XML文档,增强了数据交换和集成的能力。 八、安全管理 Oracle 9i提供了强大的安全特性,如网络...

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

    2. **XMLType**: 这是Oracle9i为存储XML数据引入的一种新的数据类型。XMLType对象可以存储完整的XML文档或者XML片段,支持XML Schema验证,提供了一种结构化的方式来管理XML数据。 3. **XML索引**: 为了优化XML数据...

    Oracle9i学习资料

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

    oracle 9i数据库培训教程

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

    Oracle9i标准培训教材

    # Oracle9i标准培训教材:XML - 开发应用程序 ## 引言 Oracle9i标准培训教材中的“XML: Develop Applications”部分旨在为学生提供一套全面的指南,帮助他们理解和应用XML技术来开发应用程序。本章节是该教材的一...

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

    ### Oracle9i网络数据库开发指南知识点总结 #### 一、Oracle9i XML网络数据库概览 **1.1 XML在Oracle9i中的角色** - **XML简介:** XML(Extensible Markup Language)是一种用于标记数据的语言,允许自定义标签来...

    oracle9i ocp 007中文版

    9. **XML支持**:Oracle 9i增强了对XML的支持,包括XML类型(XMLType)、XMLDB(Oracle XML DB)存储方案,以及XML索引,使得XML数据的存储和检索更为便捷。 10. **PL/SQL增强**:PL/SQL编程语言在9i中得到了许多新...

    oracle9i帮助文档.zip

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

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

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

    Oracle 9i资料库系统概论.rar

    11. **XML支持**:Oracle 9i加强了对XML的支持,包括XML DB(XML数据库)和XMLType数据类型,使得XML文档可以直接存储在数据库中。 12. **PL/SQL增强**:PL/SQL是Oracle的内置过程语言,9i版本中对PL/SQL进行了优化...

    oracle 9i(全).part03.rar

    7. **XML支持**:Oracle 9i开始内置XML支持,包括XMLType数据类型,使得数据库能够直接处理XML文档。 8. **Data Guard**:提供了一种灾难恢复解决方案,通过创建物理或逻辑备用数据库,确保数据在主数据库出现故障...

    xmltype需要jar包

    XMLType是Oracle数据库中用于存储和操作XML数据的一种特殊数据类型。在Oracle环境中处理XMLType时,需要依赖特定的Java库,这些库包含了处理XML数据的API和功能。标题提到的"xmltype需要jar包",实际上指的是在Java...

Global site tag (gtag.js) - Google Analytics