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

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

 2009-11-12 00:00:00 来源:WEB开发网   
核心提示: 清单 22. 每行一个 partyIdXQUERYdb2-fn:xmlcolumn("TRADES.TRADEDOC")/FpML/party/partyId;结果集:<partyId>510026</partyId><partyId>67


清单 22. 每行一个 partyId

XQUERY db2-fn:xmlcolumn("TRADES.TRADEDOC")/FpML/party/partyId;

结果集:

<partyId>510026</partyId> 
 <partyId>67781</partyId> 
 <partyId>510026</partyId> 
 <partyId>99114</partyId> 
 <partyId>99114</partyId> 
 <partyId>67781</partyId> 
 <partyId>510026</partyId> 
 <partyId>67781</partyId> 
 <partyId>99114</partyId> 
 <partyId>67781</partyId>

虽然在清单 7 中的查询结果常常更容易被应用程序使用,(例如,一次一个 XML 值)但是有一个缺点是你不知道那些 partyId 元素来自于相同的交易文档。清单 21 中的查询输出通过成对显示 partyIds 保留了这个信息。如果应用程序使用一个 XML 解析器来处理来自 DB2 的每个 XML 结果行,来自于清单 21 的第一个结果行将被解析器拒绝,因为它不是一个良好格式的文档(它缺少一个根元素)。要解决这个问题,你可以像清单 8 一样添加一个单独的跟元素:


清单 23. 添加一个根元素

select XMLQUERY('<partyIdList>{$TRADEDOC/FpML/party/partyId}</partyIdList>') 
 from trades;

这改变了查询结果,因此每个结果行都是一个有良好格式的 XML 文档。一个结果行的例子(总共有 5 个)是:

<partyIdList><partyId>99114</partyId><partyId>67781</partyId></partyIdList>

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

Tags:DB 最佳 实践

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