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

DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的最佳实践,第 5 部分

 2009-11-12 00:00:00 来源:WEB开发网   
核心提示: 在图 75 中的查询就是这么做的,它用 tradeId 123 来读取交易并在 SELECT 子句中使用 XMLQUERY 函数来把一个 XQuery 更新表达式应用到交易文档上,DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的最佳实践,第 5 部分(3), COPY 子句

在图 75 中的查询就是这么做的。它用 tradeId 123 来读取交易并在 SELECT 子句中使用 XMLQUERY 函数来把一个 XQuery 更新表达式应用到交易文档上。 COPY 子句从 XML 列 TRADEDOC 分配 XML 文档到变量 $new 中。更新子句包含一个 XQuery 循环(for $i in $new/ …)来循环文档中的 party 元素。对于每个 party 元素执行一个插入操作。 XML 元素 Name 和 Rating,通过一个在 partyId 值上的连接它们被插入和从 PARTIES 表的 PARTYIFO XML 列中读取

select xmlquery (' 
   copy $new := $TRADEDOC 
   modify 
     for $i in $new/FpML/party 
      return do insert 
 db2-fn:xmlcolumn("PARTIES.PARTYINFO")/Party[PtyID=$i/partyId]/(Name,Rating) 
          into $i  
   return $new' ) 
 from trades 
 where tradeId=123;

图 75:把 XML 数据插入到一个交易文档中

图 76 显示了上面 SQL 从交易文档中读取的细节。名字和汇率信息的插入发生在查询处理过程中的 on-the-fly 。这不是一个对数据库中文档的永久性的更新。

..(...). 
 </trade> 
 ..<party id="party1"> 
  <partyId>510026</partyId><Name>MyGlobal International Bank</Name><Rating> 
   <RatingDate>2006-05-16</RatingDate> 
   <RatingValue>Baa1</RatingValue> 
  </Rating> 
 </party> 
 <party id="party2"> 
  <partyId>67781</partyId><Name>National Village Bank</Name><Rating> 
   <RatingDate>2006-06-01</RatingDate> 
   <RatingValue>Aa</RatingValue> 
  </Rating> 
 </party> 
 </FpML>

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

Tags:DB 最佳 实践

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