甲骨文。如何将数据从一个数据库exp / imp到另一个已有数据的数据库?

时间:2017-09-15 12:40:34

标签: oracle oracle-export-dump

我有一个带有~40个表的Oracle DB。其中一些ID = 1,2,3,4,5 ......和约束。

现在我想"复制"这些数据从所有表到另一个已经具有相同表的Oracle DB。

问题是另一个DB也有记录(可以是相同的ID = 1,2,3,77,88 ......)而且我不想丢失它们。

是否有一些自动方式将数据从一个表复制到另一个表,并且ID移位和约束?

1, 2, 3, 77, 88 +
**1, 2, 3, 4, 5**

=

1, 2, 3, 77, 88, **89, 90, 91, 92, 93**

或者我需要自己做?

insert into new.table
select new.sequence_id.nextval, t.* from old.table t

为所有40个表保存new.id - old.id映射等等?

2 个答案:

答案 0 :(得分:0)

这是一个有点脏的解决方案,但如果所有ID都是数字,您可以先将旧ID更新为负数ID = -1 * ID(或者只是在动态选择语句中执行)然后插入。在这种情况下,您的所有ID都是一致的,约束是有效的,并且它们可以与新数据一起生效。

答案 1 :(得分:0)

第一,你需要expdp,是第二个你在impdp中重映射架构的新架构名称