我不知道该怎么表达我对你的爱,只能从我的最高音到我的最低音,也许太高的梦想我永远实现不了,也许过于卑微的容忍我永远也下不去,可是...这就是我,虽然不够完美,却那么真诚地用尽力量...
有关db2以及移植碰到的问题
上一篇 /
下一篇 2008-04-26 00:05:09
/ 个人分类:DB2
今天做了关于oracle基本对象到db2的移植,用的是MTK工具.并没有用MTK直接抽取oracle数据库里面的东西,而是用toad从oracle里面导出,以便后续的工作有所参考.
在从oracle到db2的移植过程中,需要注意的问题主要包含这几个方面.首先移植的先后顺序要有保证,其次运用MTK工具的时候要注意设置上下文,这样才不至于出现unknown object的现象,以提高翻译的成功率.对于部分oracle函数通过mtk移植后会变成一个伪的函数,比如to_char通过MTK翻译时会变成ora.to_char,其实并不存在该函数,所以在翻译后要将这样的函数手动改成需要的强制转换类型.
关于从oracle上的一些特殊用法移植到db2上的策略:rowid移植到db2上时采用mtk用具给每个表加上一列名字叫rowid, 这样mtk自动生成该列,但是该列的类型是integer的,类似sequence,并不一定够用,所以我在移植的过程中把该列定义为了varchar(50)类型,然后在该表上定义了关于该列的一个before trigger ,(运用了db2自带的函数create unique(大概这个写法吧)来生成一个唯一的rowid,在插入操作之前将rowid到该表中).
关于视图的移植,MTK对视图的翻译程度不是很好,因为视图涉及到嵌套和运用到函数,所以很难确定先后顺序等不定因素,所以关于视图的移植不像表那样成批的生成db2脚本运行,视图通过mtk翻译后,然后逐个进行手动移植.
关于函数部分的移植,函数通过MTK翻译的时候都转换成了procedure,.但在有的时候必须用到函数,比如视图.所以关于函数部分,如果是简单的函数建议还是手动写入db2中.db2的函数功能较弱,不支持select into 语句,游标语句不敢肯定支持不支持.遇到select into语句,基本都写成了set **=select ***** from ** 的格式.还有些函数db2中没有的就必须手写了.比如lpad函数,可是很奇怪,今天写的函数怎么就用不了呢,一直提示函数没有注册什么的...但是在当前模式下确实有这个函数存在.郁闷.....还是对db2不懂....
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG: