从oracle中两个不同的表中向表中插入多行?

时间:2019-03-08 11:41:06

标签: sql oracle

我正在尝试使用select将多行插入到我的表中,但是我得到的值错误不足。

我的查询:

Insert into c(x, y) select * from a union all select * from d;
  

表a和b分别包含2条记录,表c具有1条记录。

2 个答案:

答案 0 :(得分:1)

通过指定两个列名,尝试进行以下操作

Insert into c(x, y) 
select col1,col2 from a
 union all 
select col1,col2 from d

对于union all,两个表的列数相同,并且它们的数据类型也必须相同

答案 1 :(得分:1)

明确列出各列:

Insert into c (x, y)
    select col1, col2
    from a
    union all
    select col1, col2
    from d;

如果表之一只有一列,则使用占位符作为值:

Insert into c (x, y)
    select col1, col2
    from a
    union all
    select col1, NULL
    from d;