在Oracle 9i中的两个数据库之间迁移数据

时间:2009-11-06 09:01:29

标签: oracle oracle9i

我是Oracle新手。由于我们已经重写了早期的应用程序,我们必须将数据从Oracle 9i中的早期数据库迁移到新的数据库,也就是9i,具有完全不同的结构。列名和类型将完全不同。我们需要映射表和列,尝试导出尽可能多的数据,消除重复,并使用默认值填充空值。

是否有任何工具可以帮助映射2个数据库的元素,使用规则处理重复项,默认值并迁移数据?

谢谢,

泽。

2 个答案:

答案 0 :(得分:1)

在许多情况下,创建数据库链接和一些脚本a'la

insert into newtable select distinct foo, bar, 'defaultvalue' from oldtable@olddatabase where xxx

应该做的伎俩

答案 1 :(得分:1)

如果你的目标是在两个非常不同的模式之间迁移数据,你可能需要一个ETL解决方案(ETL = E 提取 T ransform L OAD)。

ETL允许您:

  • 从源数据库中选择数据[提取]
  • 将业务逻辑应用于所选数据[转换](处理重复项,默认值,映射源表/列与目标表/列...)
  • 将数据插入新数据库[Load]

大多数ETL还允许某种自动化和报告负载(坏/丢弃的行......)

Oracle的ETL称为Oracle Warehouse Builder(OWB)。它包含在数据库许可证中,您可以从Oracle网站下载它。与大多数Oracle产品一样,它功能强大,但学习曲线有点陡峭。

您可能希望在SO中查看[ETL]部分,其中包括: