从表中复制数据并将其加载到另一个表中

时间:2013-07-09 16:01:57

标签: sql oracle plsql forall bulk-collect

我有一个包含40列的表'A'。我需要将来自'A'的20个特定列的数据复制到具有这20列的另一个表'B'。将有大约3千万到1千万条记录。 在PLSQL中执行此操作的最有效方法是什么。

2 个答案:

答案 0 :(得分:1)

  

“每日表B将被截断,新数据将被插入其中   从A。“

好的,所以最有效的方法就是不要这样做。改为使用物化视图;表A上的物化视图日志将允许您捕获增量更改并每天应用它们,或者在您喜欢的任何其他窗口中应用它们。 Find out more

与使用手动PL / SQL(甚至纯SQL)的方法相比,可笑性低效。

答案 1 :(得分:0)

您是否需要对数据进行任何类型的转换,或者只是将数据直接从一个表复制到另一个表?

最简单的方法是,尽管您必须单独创建索引。

create table B as (select A.c1, A.c2, A.c3..... from A);

如果表格x已存在,则可以执行

insert into B select A.c1, A.c2.... from A

为了加快速度,你需要删除表x上的所有索引,直到插入完成。