WEB开发网
开发学院数据库DB2 DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的... 阅读

DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的最佳实践,第 3 部分:如何高效并有效率的查询 XML 数据

 2009-11-12 00:00:00 来源:WEB开发网   
核心提示: 你可能发现 XQuery 表达两个 XML 文档的连接很方便,就像 unions XML 值一样,DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的最佳实践,第 3 部分:如何高效并有效率的查询 XML 数据(5),XQuery 也有一些缺点:使用普通 XQuery 你不能使

你可能发现 XQuery 表达两个 XML 文档的连接很方便,就像 unions XML 值一样。

XQuery 也有一些缺点:

使用普通 XQuery 你不能使用 DB2 Net Search Extender(NSE) 提供的全文本查询能力。要使用全文本查询你需要把引入 SQL 。

普通 XQuery 不允许你调用 SQL 用户定义函数(UDFs)或着用 C 或 Java 写的外部 UDFs 。

当前,DB2 没有提供一个方法来调用单独的有参数标记的 XQuery 。为了向 XQuery 传输参数,你必须使用 SQL/XML 来把参数标记 ("?") 转换成名称变量。

有内置 SQL 的 XQuery

XQuery 只允许你访问 XML 数据,而且仅限于 XML 数据。如果你只需要处理 XML 数据的话,这已经足够了,但是如果你的应用程序需要联合访问 XML 数据和关系型数据的话就显得不够了。但是使用 SQL/XML 可以,把 XQuery 嵌入 SQL 。相反的,把 SQL 嵌入 XQuery 提供了另外的可能性。

提示:内置 SQL 的 XQuery 允许你使用关系型谓词来约束对一个特定 XQuery 的输入以及只处理一个 XML 文档的子集。出于这个意图,DB2 提供了 db2-fn:sqlquery 函数来在 XQuery 中调用一个 SQL 查询。这个函数执行一个 SQL SELECT 语句并把一个返回的 XML 列作为输出。例如,清单 20 中的查询没有考虑在 XML 列 TRADEDOC 中的所有文档,不过有一个内置 SQL 语句将通过应用一个在关系型列 TRADEID 上的一个谓词来预先过滤 XML 文档。


清单 20. 使用 SQL 谓词约束对 XQuery 的输入

XQUERY 
 for $t in db2-fn:sqlquery("select tradedoc from trades t 
             where t.tradeId >= 789")/FpML/trade 
 where $t/termDeposit/principal/currency="EUR" 
 return $t/tradeHeader/tradeDate;

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

Tags:DB 最佳 实践

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