WEB开发网
开发学院数据库DB2 使用 XQuery 查询 DB2 XML 数据 阅读

使用 XQuery 查询 DB2 XML 数据

 2009-11-11 00:00:00 来源:WEB开发网   
核心提示: 清单 2. 返回客户联系方式数据的简单 XQueryxquerydb2-fn:xmlcolumn('CLIENTS.CONTACTINFO')您可能还记得,在我们的数据库模式中(参见 “样本数据库” 小节),使用 XQuery 查询 DB2 XML 数据(


清单 2. 返回客户联系方式数据的简单 XQuery
xquery db2-fn:xmlcolumn('CLIENTS.CONTACTINFO') 

您可能还记得,在我们的数据库模式中(参见 “样本数据库” 小节),我们将那些 XML 文档存储在 “clients” 表的 “contactinfo” 列中。注意,这里的列名和表名是大写的。这是因为表名和列名在被写入到 DB2 的内部编目之前通常要换成大写形式。由于 XQuery 是大小写敏感的,因此小写的表名和列名不能与 DB2 编目中的大写名称相匹配。

检索特定的 XML 元素

首先我们来看一个基本的任务。假设您要检索所有提供了有关传真信息的客户的传真号。清单 3 给出了编写该查询的一种方式:


清单 3. 检索客户传真数据的 FLWOR 表达式
xquery 
for $y in db2-fn:xmlcolumn('CLIENTS.CONTACTINFO')/Client/fax 
return $y 

第一行指示 DB2 调用它的 XQuery 解析器。接下来的一行指示 DB2 对包含在 CLIENTS.CONTACTINFO 列中的 Client 元素的 fax 子元素进行迭代。每个 fax 元素被依次与变量 $y 绑定。第三行指出在每次迭代中返回 $y 的值。结果为一系列的 XML 元素,如 清单 4 所示:


清单 4. 上述查询的示例输出
<fax>4081112222</fax> 
<fax>5559998888</fax>   

随便提一下,这里的输出还将包含与本文关系不大的一些信息:XML 版本和编码数据,例如 <?xml version="1.0" encoding="windows-1252" ?>,以及 XML 名称空间信息,例如 <fax xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">。为了使输出更简单,本文省略了这些信息。然而,对于很多 XML 应用程序来说这些信息可能很重要。如果使用 DB2 命令行处理器来运行查询,那么可以使用 -d 选项来省略 XML 声明信息,还可以使用 -i 选项以一种美观的方式打印结果。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:使用 XQuery 查询

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接