真没劲,又干这种没技术含量的活了!把客户一个用了N年的数据库(Sql Server 2000)要迁移到我们系统的数据库中来(选用的是Oracle 10g)。比较犹豫怎么导的问题,要么写个小JDBC程序?要么用DTS?想了想,还是不要再发明个轮子算了(其实我类似的轮子都做了N个了,只是懒得再动手改)
在DTS导入的时候会遇到几个问题:
1、导过来的表名比较古怪,都是加上双引号的,写的SQL老是说找不到表名,晕死我,对象浏览器里明明就是那个表名。一阵犯嘀咕,觉得自己没有老花眼呀。唉,所以DTS导过来的,要先改名,如:
alter table "Base" rename to base;
2、DTS在导一些表时老是会出错,后来检查发现,这个笨蛋把人家很多应该是number型的给设置了varchar2,或是date型给整成了varchar2,诸如此类了,所以在不同数据库中导数据时,要注意检查数据类型的对应关系。
3、DTS在导几个大表时,老是提示一些莫名其妙的错误。诸如:ROW-00060: Internal error: [dainsert,16],想破脑袋你也想不出来,是内存给DTS用完了(我晕倒,我是4G的内存呀!),没办法你分几次导入吧(用SQL语句来导入)
通过此次导数据,我深刻的总结出,最没技术含量的活有时也能让你晕菜!
原文地址 http://gzspark.iteye.com/blog/255354
在DTS导入的时候会遇到几个问题:
1、导过来的表名比较古怪,都是加上双引号的,写的SQL老是说找不到表名,晕死我,对象浏览器里明明就是那个表名。一阵犯嘀咕,觉得自己没有老花眼呀。唉,所以DTS导过来的,要先改名,如:
alter table "Base" rename to base;
2、DTS在导一些表时老是会出错,后来检查发现,这个笨蛋把人家很多应该是number型的给设置了varchar2,或是date型给整成了varchar2,诸如此类了,所以在不同数据库中导数据时,要注意检查数据类型的对应关系。
3、DTS在导几个大表时,老是提示一些莫名其妙的错误。诸如:ROW-00060: Internal error: [dainsert,16],想破脑袋你也想不出来,是内存给DTS用完了(我晕倒,我是4G的内存呀!),没办法你分几次导入吧(用SQL语句来导入)
通过此次导数据,我深刻的总结出,最没技术含量的活有时也能让你晕菜!
原文地址 http://gzspark.iteye.com/blog/255354