将两个不同表中的记录插入到oracle中的单个表中

时间:2018-09-15 08:15:42

标签: oracle

我想将两个不同表(例如表A和表B)中的数据插入到oracle中的第三个表(表C)中。

我编写了两个不同的游标,分别用于从表A和B中获取数据,并基于这两个表填充了两个集合。

现在,我想将这两个集合中的数据插入到第三张表(表C)中,如何完成此操作。

现在两列中都有两个公共列,例如ID和YEARMONTH,这两个列都存在于所有表(A,B和C)中。

我尝试根据这两个字段进行合并。 但是我正在寻找一种有效且更方便的方法来实现此目的。

2 个答案:

答案 0 :(得分:0)

您没有提供编写的代码,所以我猜:光标表示PL / SQL。如果您要逐行循环执行,则速度会很慢。

由于两个表(A和B)中都有公共列,所以我建议在纯SQL中执行此操作:将这两个表连接起来并将结果插入C中。

insert into c (id, yearmonth, ...)
select a.id, a.yearmonth, ...
from a join b on a.id = b.id;

确保用于连接表的列上存在索引。或者,甚至更好的是,比较两种情况下的解释计划(有索引和无索引),然后选择似乎最好的选项。

答案 1 :(得分:0)

插入tableC 从表A中选择*,其中... 联盟 从tableB中选择*,其中...