热门关键字:  ubuntu  分区  函数  linux系统进程  Fedora

在 DB2 SQL 存储过程中使用 XML

来源: 作者: 时间:2007-09-09 Tag: 点击:
 SELECT、INSERT 、UPDATE 和 DELETE 语句都可以使用新的 IBM DB2 9 SQL/XML 函数,这些函数可以在几种不同的环境中运行。DB2 命令行处理程序、第三方查询工具和 SQL 存储过程都是符合要求的环境。存储过程可以结合使用过程逻辑结构,比如变量、IF/THEN/ELSE 逻辑、循环、游标和错误捕获。本文研究如何使用过程逻辑操作 XML 数据。提供的简短代码示例和解释将帮助您尽快熟悉 SQL 存储过程中的 XML 操作。

  简介

  与以前的 DB2 版本相比,IBM® DB2® 9 for Linux, UNIX®, and Windows® 的主要改进是添加了新的 XML 功能。在 DB2 9 之前,可以将 XML 文档存储为 LOB,或者将传入的 XML 数据分解到关系表中,这个过程需要使用 XML Extender。但是,DB2 9 使用户能够按照 XML 固有的层次化格式存储和查询 XML 数据 —— 这种技术称为 pureXML™ 支持。现在,可以在 XML 数据上建立索引,并通过调用存储过程执行分解。

  本文讨论如何在 SQL 存储过程中使用 XML。我提供了许多代码示例来帮助演示特定的技术要点。提供示例的目的在于帮助您理解,因此示例要尽可能简单。为此,示例可能有点儿不够真实。

  XML 简介

  XML 表示 “可扩展标记语言(extensible markup language)”,这是一种表示信息的层次化方法,它的语法与 HTML 非常相似。XML 文档是一个由 “元素(element)” 或分支组成的树结构。每个元素有名称,可以包含文本值,可以具有一系列属性(格式为 “name=value”),可以有子元素。允许重复的元素名称,但是一个元素中的属性名称必须是惟一的。

  XQuery 是一种用于 XML 的查询语言,它基于 W3C 标准。XQuery 常用于在关系数据库外查询 XML 数据,这些数据可能存储在文本文件中。XQuery 可以访问 XML 数据(包括联结)、循环、声明的变量、IF/THEN/ELSE 语句和其他结构。

  在 DB2 9 中有四种处理 XML 数据的方式:

  •   一般 SQL

  一般 SQL 由常规 SQL 语句和函数组成,它们没有引用 XPath 或 XQuery。一般 SQL 只能将 XML 文档作为完整的实体进行操作。可以在数据库中插入和检索 XML 文档,以及在实体和文本之间进行转换。但是,无法解析 XML 文档的一部分,也无法应用任何谓词。

  •   带嵌入 XQuery 的 SQL/XML

  SQL/XML 包含三个操作 XML 数据的新函数,这些函数以嵌入的 XQuery 命令作为参数 —— XMLQUERY、XMLEXISTS 和 XMLTABLE。

    •   XMLQUERY 用来从 XML 数据中提取信息。通过结合使用 XMLCAST 函数,可以从 XML 中派生出关系数据。
    •   XMLEXISTS 对 XML 数据应用谓词,常常用在 WHERE 子句中。
    •   XMLTABLE 以关系表的形式提取 XML 数据。
  •   XQuery

  XQuery 现在是 DB2 数据库引擎中的本机特性。有两个用来访问 DB2 数据的函数。第一个函数 db2-fn:xmlcolumn 向 XQuery 返回 XML 列的值。包含所有行;没有谓词。

  •   带嵌入 SQL 的 XQuery

  还提供 db2-fn:sqlquery 函数来访问 DB2 数据,它以一个 SELECT 语句作为参数。这个 SELECT 可以执行所需的任何操作,但是必须在 SELECT 列表中返回一个 XML 类型的列。

最新评论共有 4 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册