DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的最佳实践,第 3 部分:如何高效并有效率的查询 XML 数据
2009-11-12 00:00:00 来源:WEB开发网你可能发现 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;
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››db2 命令选项解释
- ››最佳ASP.NET编程习惯
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
更多精彩
赞助商链接