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

使用 XQuery 查询 DB2 XML 数据

 2009-11-11 00:00:00 来源:WEB开发网   
核心提示: 清单 3 中显示的查询也可以用一种更简单的三步路径表达式来表达,如 清单 5 所示: 清单 5. 检索客户传真数据的路径表达式xquerydb2-fn:xmlcolumn('CLIENTS.CONTACTINFO')/Client/fax路径表达式的第一步调用 db2-fn:xm

清单 3 中显示的查询也可以用一种更简单的三步路径表达式来表达,如 清单 5 所示:


清单 5. 检索客户传真数据的路径表达式
xquery 
db2-fn:xmlcolumn('CLIENTS.CONTACTINFO')/Client/fax 

路径表达式的第一步调用 db2-fn:xmlcolumn 函数从 CLIENTS 表的 CONTACTINFO 列获得一个 XML 文档的列表。第二步返回这些文档中的所有 Client 元素,第三步则返回嵌入在这些 Client 元素中的 fax 元素。

如果您无兴趣通过查询获得 XML 片段,而只想要符合条件的 XML 元素值的文本表示,那么可以在 return 子句中调用 text() 函数,如 清单 6 所示:


清单 6. 两个用于检索客户传真数据的文本表示的查询
xquery 
for $y in db2-fn:xmlcolumn('CLIENTS.CONTACTINFO')/Client/fax 
return $y/text() 
(or) 
xquery 
db2-fn:xmlcolumn('CLIENTS.CONTACTINFO')/Client/fax/text() 

上述查询的输出如 清单 7 所示:


清单 7. 上述查询的示例输出
4081112222 
5559998888 

这些示例查询的结果都相当简单,因为 fax 元素是基于基本数据类型的。当然,元素也可能基于复杂的数据类型 —— 即包含子元素(或嵌套层次结构)。例如客户联系方式信息中的 Address 元素就是这样。根据 “DB2 Viper 快速入门”(developerWorks,2006 年 4 月)中定义的模式,该元素包含街道地址、门牌号、所在城市、州、国家以及邮政编码。考虑 清单 8 中的 XQuery 将返回什么结果:


清单 8. 检索复杂 XML 类型的 FLWOR 表达式
xquery 
for $y in db2-fn:xmlcolumn('CLIENTS.CONTACTINFO')/Client/Address 
return $y 

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

Tags:使用 XQuery 查询

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