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

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

 2009-11-12 00:00:00 来源:WEB开发网   
核心提示: 图 76 添加到交易文档中 party 元素的其它信息用关系数据丰富 XML 文档如果交易各方信息是纯关系型的并如图 77 所示呢?createtableparties2(ptyIdBIGINT,shortnameVARCHAR(10),nameVARCHAR(30),statusVARCHAR

图 76 添加到交易文档中 party 元素的其它信息

用关系数据丰富 XML 文档

如果交易各方信息是纯关系型的并如图 77 所示呢?

create table parties2 ( 
    ptyId    BIGINT, 
    shortname  VARCHAR(10), 
    name     VARCHAR(30), 
    status    VARCHAR(30), 
    ratingDate  DATE, 
    ratingValue VARCHAR(10) ) ;

图 77:关系表包含 party 汇率信息

我们可以读取 party 名和汇率,并把它们作为 XML 元素插入到一个选定的交易文档。这在图 78 中用不同于之前在图 75 中的两种重要的查询的方法来完成。新的 XML 元素 Name 和 Rating 直接用元素构建器来构建。它们的值是来自于关系列中,并作为变量来引用,比如 {$NAME} 。其次,通过把 $i/partyId 作为一个参数传输到嵌入式 SQL 语句中。 db2-fn:sqlquery 函数在这里有两个参数,SQL 语句和参数。在 SQL 语句中 $i/partyId 的值是通过函数 parameter(1) 来引用的。 DB2 VERSION 9.5 支持这个类型的参数传递。

select xmlquery ('
copy $new := $TRADEDOC
modify for $i in $new/FpML/party
return do insert
db2-fn:sqlquery("select xmlquery(''
<Name>{$NAME}</Name>,
<Rating>
<RatingDate>{$RATINGDATE}</RatingDate>
<RatingValue>{$RATINGVALUE}</RatingValue>
</Rating>'')
from parties2
where ptyID=parameter(1)",$i/partyId)
into $i
return $new' )
from trades
where tradeId=123;

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

Tags:DB 最佳 实践

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