DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的最佳实践,第 3 部分:如何高效并有效率的查询 XML 数据
2009-11-12 00:00:00 来源:WEB开发网这个查询例子使用 XMLEXISTS 来查询 partyID 510026 发起的交易并应用 XMLQUERY 来从相应文档返回交易数据。结果就是:
TRADEID TRADEDATE
123 2001-04-29Z
456 2001-10-23Z
你可通过在 XMLEXISTS 和 XMLQUERY 函数中忽略 PASSING 子句来以简化查询。如在如下面代码所示,你可以把列名作为 XQuery 表达式中的变量,而不需要 PASSING 子句。我们将从现在开始使用这个简化后的语法。
清单 17. 使用可选的公式来简化清单 16 中的查询
select tradeId,
xmlquery('$TRADEDOC/FpML/trade/tradeHeader/tradeDate/text()')
as tradeDate
from trades
where xmlexists('$TRADEDOC/FpML/party[partyId="510026"]')
and tradeId < 600;
我们可以使用 XMLTABLE 函数来表达相同的查询,见清单 18 。在这个格式中,我们指定条件来约束输入数据并抽取我们感兴趣的输出值。在 XMLTABLE 函数中的 XQuery 表达指定了涉及 partyID510026 的交易和在 COLUMNS 子句(“ trade/tradeHeader/tradeDate ”)中的路径表达,以一个 SQL DATE 类型返回他们的交易数据。它的数据和清单 16,17 中的查询一样。这个 XMLTABLE 语法在 XQuery 表达中避免了 PASSING 子句。
清单 18. 清单 16 中的查询的变种 XMLTABLE
select t.tradeId, tx.tradeDate
from trades t,
XMLTABLE('$TRADEDOC/FpML[party/partyId="510026"]'
COLUMNS
tradeDate date path 'trade/tradeHeader/tradeDate' ) as tx
where t.tradeId < 600;
- ››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 数据模型
更多精彩
赞助商链接