新客网
首页 | 新闻 | 系统·网络·服务器·安全 | 工具·办公 | 编程·数据库 | 图象·网页·运营 | 硬件·存储 | 专题教程 | 旧版
 → 当前位置:首页 > 教程 > 数据库 > DB2教程 > 正文

对比DB2 9和DB2 V8.x中的XML功能

XKER.COM   2006-8-30 7:59:48  来源:IBM开发网  点击:



这个调用的输出生成一个 prod.del 文件和一个或多个包含 XML 数据的 lob 文件。
100-100-01,Denim Roll Cuff Crop Pants,pants,+024.89,prod.del.001.lob.0.474/

100-100-02,Bermuda Shorts,shorts,+09.99,prod.del.001.lob.474.488/

重点: 如果 XML 数据的列类型是 VARCHAR,那么需要在 select 语句中将这个列转换为 CLOB,以防止 XML 数据被放在 DEL 文件中。
DB2 export to C:/temp/migration/export/prod.del of del LOBS

to C:/temp/migration/export/lobs modified by LOBSINFILE

select pid,name,category,price,cast(Info as clob) from product

cast (Info as clob) 确保 XML 数据导出到 lob 文件,而不是添加到分界的(DEL)文件中。

如果没有转换这个列,那么输出会像下面这样:
100-100-01,Denim ,pants,+024.89,

100-100-02,Bermuda ,shorts,+09.99,

IMPORT 命令无法处理这种格式,因为它认为这是非良构的 XDS。
将 XML 数据导入 DB2 Viper

现在可以使用 IMPORT 实用程序将导出的数据导入新数据库中创建的表中。传递 DEL 文件的名称和 LOB 文件的路径。
DB2 IMPORT FROM C:/temp/migration/export/prod.del OF DEL LOBS FROM

C:/temp/migration/export/lobs MODIFIED BY XMLCHAR INSERT INTO product;

注意: 对于分解到关系列的 XML 数据,不需要迁移数据。

迁移 XML 数据上的索引

DB2 Version 8.x 中,XML 列中存储的 XML 数据可以利用关系副表建立间接索引。将副表中的值与 XML 列中的文档关联起来的映射信息在 DAD 文件中定义。

由于 DB2 Viper 能够创建直接定位 XML 文档内部的路径的 XML 索引,所以不再需要使用副表来建立间接关系索引。用来创建 XML 索引的一些关键参数与 DAD 映射中的参数相似。可以使用 DAD 映射中这些参数的值来创建 XML 索引。现在来分析一个 DAD 映射示例,这个 DAD 映射用来为 DB2XML.XMLCLOB 类型的 purchaseorder 列创建副表。






path="/purchaseOrder/shipTo/name" multi_occurrence="NO"/>



这个映射中关键的参数是 //column/@path 和 //column/@type。

DB2 Viper 中相应的 XML 索引是:
create index order_name on purchaseorder (info) generate key using

xmlpattern '/purchaseOrder/ shipTo/name' as SQL VARCHAR(128);

DAD 中的 //column/@path 值与 XML 索引中的 xmlpattern 相同,DAD 中的 //column/@type 值与 SQL 类型相同。

另一个重要之处是根 ID,当用这个 DAD 文件在 DB2 Version 8.x 中启用 XML 列时,这个值传递给 enable_column 调用。
dxxadm enable_column migrate purchaseorder info

"/home2/hardeep/migrate/po.dad" -r poid

这个根 ID 标识出表中一个主键的名称,这个主键被添加到副表中,用来将副表与包含 XML 列的表关联起来。根 ID 的值在 XML 列上是惟一的。这个根 ID 对应于 XML 文档中的路径值,惟一地定义 XML 列中的这个文档。

所以,当为 DB2 Viper 创建 XML 索引时,可以在 DB2 Version 8.x 中定义根 ID(主键)的路径上创建惟一索引(如果主键在 XML 文档中存在的话)。
create unique index order_key on purchaseorder (info) generate key using

xmlpattern '/purchaseOrder/@poid' as sql double;

迁移用来将 XML 数据分解为关系数据的映射文件

如果应用程序需要将输入的 XML 数据分解为关系表,而且您感觉这种需要仍然存在,那么需要将现有的 DAD 映射替换为带注释的 XML 模式映射。

表 4. XML 集合和带注释的 XML 模式之间的差异

XML 集合 新的分解
映射文件 DAD 带注释的模式
功能和性能 有限 功能得到了扩展,性能更好
DTD/模式 不需要。可以注册,也可以不注册。 需要。必须注册。
注意: 在这两种映射中,关系表都必须提前存在。

本新闻共13页,当前在第07页  
01  02  03  04  05  06  07  08  09  10  
11  12  13  

上一篇教程:DB2 中的数据类型
下一篇教程:DB2 9颠覆关系型数据库?
收藏本文】 【我要投稿】 【打印本文】 【论坛讨论】 【关闭窗口

相关文章
·DB2 9数据库专题·DB2 9安装方法简介
·海关数据库专家王翔看好DB2 9的数据压缩性能·段云峰:DB2 9对企业有3点帮助
·银行数据库专家王明胜谈DB2 9·DB2专家王云谈商业智能BI
·DB2 9是信息数据管理的基石·DB2 9数据服务器发展3部曲
·DB2 9颠覆关系型数据库?·DB2 中的数据类型
·DB2中的数据移动详解·用shell抽取,更新db2的数据
·IBM DB2 Connect简介·DB2数据库设计和最高性能原则
·DB2 如何提高IMPORT命令性能·在Linux上实现DB2双机HA完整方案

学院文章搜索
  
推荐文章
·编程过把瘾:自己动手写操
·数据恢复指南 专题
·硬盘“逻辑锁”解决办法
·DOS使用中的常见问题解答
·DOS下常用的相关网络命令
·Win2000优化技巧篇之:硬件
·惊心8小时:破译Windows运行
·菜鸟必备:超实用低级格式
·硬件有价数据无价 硬盘开盘
·国内数据恢复市场内幕揭秘
阅读排行
·免费代理IP(每日更新)
·DB2 9数据库专题
·关于 Apache 的几种常见应
·QQ千人好友浮出水面 会员抢
·站长手册:WIN2003下Web服
·网站投资你和我的20个自身
·Fdisk分区详解
·140天,从做站起步到日赚1
·佳能活动 免费得QQ秀
·DOS下对系统重新进行分区
专题教程
·数据恢复指南 专题
·Web服务器专题
·DB2 9数据库专题
·ghost教程 专题
·局域网技术专题
·虚拟机专题
·CDN加速技术专题
·注册表教程专题
·电脑技巧 专题
·Linux与虚拟化技术
最新文章
·Firefox出现新高危0Day漏洞
·QQ千人好友浮出水面 会员抢
·DOS下对系统重新进行分区
·Fdisk分区详解
·DOS常用命令
·dos如何进行系统配置
·dos慎用命令
·Ver、Vol、Ctty命令使用说
·Tree、Unformat、Vsafe命令
·Setver、Share、Subst命令
设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003 - 2006 XKER Inc. All Rights Reserved
新客网 版权所有