任重道远迁移路之Oracle到DB2


  本文标签:Oracle DB2

  

迁移环境配置:

  数据源: BNET开发环境数据

  服务器: SunOS v880 5.8

  数据库: Oracle 9.2.0.4 & DB2 8.2

  迁移工具:IBM DB2 Migration Toolkit 1.3

一. 表迁移

  1. 索引长度的限制

  在DB2中单个索引的所对应的字段最大长度限制为1024个字符

  表名:T_BIZPROC_INST_PARAM、T_BIZPROC_INST_ACTIVITY_PARAM

  解决方法:

  (1)如是组合索引,对不同的字段新建不同索引

  (2)修改字段类型长度

  2. 表字段类型

  无法转换NVARCHAR2字段类型

  表名:T_IBSS_REL_TEST

  解决方法:修改为varchar字段类型

  3. 表的大小长度限制

  表的大小超过数据库页面大小4K

  解决方法:新建合适的页面(8K)的表空间

  4. 唯一索引与主键字段重复

  DB2不允许唯一索引的字段与主键字段重复

  表名:T_NODE

  解决方法:删除唯一索引

  5. 大字段(BLOB,LONG)的迁移

  解决方法:

  (1)DB2迁移工具

  (2)单独写INSERT脚本迁移数据

二. 同义词迁移

  1.解决方法:单独写脚本 如:create alias alias_name for table_name

三. 序列迁移

  1.在DB2中序列可以有两种形式:

  (1)同ORACLE数据库一样是单独存在

  (2)同SYBASE数据库类似是可以在表字段中定义

  2.解决方法:由于ORACLE的序列的上限设置的比较大,因此如果通过DB2的转换工具来迁移ORACLE的序列生成的最大长度类型会出现错误  。 需要手动的把DECIMAL(27,0) 字段类型替换为长度为18的 bigint 字段类型

四. 存储过程迁移

  1. 动态SQL语句语法不同

  注:现在BNET生产环境数据库未使用存储过程就不详细说明

  原文链接:http://272426068.iteye.com/blog/1204561