没有合适的资源?快使用搜索试试~ 我知道了~
如何将DB2数据库中的大对象(BLOB,CLOB)数据类型复制到Oracle数据库中
5星 · 超过95%的资源 需积分: 46 69 下载量 59 浏览量
2009-10-27
16:06:17
上传
评论
收藏 91KB DOC 举报
温馨提示
试读
4页
[问题描述] WII中对LOB对象的复制支持仅限于DB2的数据库。具体的限制请参考: http://publib.boulder.ibm.com/infocenter/db2luw/v8//topic/com.ibm.db2.ii.doc/admin/te0dt000.htm#te0dtrlo 对非DB2数据库的数据复制, 不直接支持LOB(BLOB,ClOB)等大对象数据类型,但在实际应用中,用户需要复制的表中有可能有BLOB等大对象数据,如果数据目标为Oracle,这类大对象复制的需求可通过对WII的复制进行特殊配置实现。下面以一个实际的例子来说明如何将DB2中的BLOB数据类型复制到Oracle中。
资源推荐
资源详情
资源评论
[标题]如何将 DB2 数据库中的大对象(BLOB,CLOB)数据类型复制到 Oracle 数据库中
[环境]
Windows, db2 8.2, Websphere information integrator 8.2(以下简称 WII)
[问题描述]
WII 中对 LOB 对象的复制支持仅限于 DB2 的数据库。具体的限制请参考:
http://publib.boulder.ibm.com/infocenter/db2luw/v8//topic/com.ibm.db2.ii.doc/admin/te0dt000.htm#te0dtrlo
对非 DB2 数据库的数据复制, 不直接支持 LOB(BLOB,ClOB)等大对象数据类型,但在实际应用中,用户需要复制的表中
有可能有 BLOB 等大对象数据,如果数据目标为 Oracle,这类大对象复制的需求可通过对 WII 的复制进行特殊配置实现。
下面以一个实际的例子来说明如何将 DB2 中的 BLOB 数据类型复制到 Oracle 中。
[解答]
基本思路:
通过 WII 的联邦能力,先把 DB2 数据源表中的非 BLOB 字段复制到目标表中,对于 BLOB 字段,在每个复制周期
完成后,增加一个对目标记录 BLOB 字段的 update 操作,直接把数据源的 BLOB 数据更新到数据目标的 BLOB 数据中。
其中的关键步骤就是如何区分在数据目标表中,哪些记录需要更新,哪些不需要更新。为解决这个问题,可以在数据
目标表上增加一个标志字段 flag,该字段对应复制处理的计算字段,赋为常量值“1”, 然后在更新数据目标 BLOB 字段
的 Update 语句的 Where 条件中使用此标志字段进行比较,flag 为“1”的记录则进行变量 BLOB 更新,在更新 BLOB 数据
的同时,将该标志字段置为非“1”的值,以避免重复更新。
具体的解决步骤:
1)假设有一个需要进行复制的 DB2 源表 EMP_PHOTO 有以下 3 个字段,其中主键为(EMPNO, PHOTO_FORMAT)
DB2 CREATE TABLE EMP_PHOTO ( EMPNO CHAR(6) NOT NULL ,
PHOTO_FORMAT VARCHAR(10),
PICTURE BLOB(102400) ,
PRIMARY KEY (EMPNO, PHOTO_FORMAT)
)
2)采用跟普通复制相同的步骤,分别在 DB2 源数据库中创建 Capture 控制表,在目标数据库 Oracle 中创建 Apply 控制
表。
3)将 EMP_PHOTO 表注册到复制的数据源中。
4)定义从数据源 EMP_PHOTO 到 Oracle 目标表的预定集,假设 Oracle 中使用的目标表名称为 REP.TGEMP_PHOTO,
同时在 DB2 中产生的目标表的昵称为 ORA817.TGEMP_PHOTO。
5)将 EMP_PHOTO 添加到复制成员中,同时增加计算列 flag,将其设置为常量值“1”,生成执行脚本并运行。添加计算
列的过程如下图所示:
anywayme
- 粉丝: 1
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页