从两个不同的表插入两个不同的表

时间:2019-06-18 08:16:03

标签: sql oracle sql-insert

尝试此操作时出现错误

  

“ ORA-06550:第2行,第48列:PL / SQL:ORA-00926:缺少值   关键字ORA-06550:第2行,第1列:PL / SQL:SQL语句已忽略”。

我需要将来自不同表的一些值插入到两个不同的表中。

假设表1和表2相似,

table 1
x|y   ---> column names
a b   ---> values

table 2
z|k   --->c.n
c d   --->val.

如您所见,我需要将一些行进行少量更改复制到其自己的表中。但是我有两个不同的表,我应该同时执行。

INSERT INTO table1.a,table1.b,table2.c,table2.d
SELECT x,y,z,k
FROM table1
FULL JOIN table2_ALT ON table1.x=table2.z
WHERE ....

INSERT INTO table1.a,table1.b,table2.c,table2.d
SELECT table1.x,table1.y,table2.z,table2.k
FROM table1
FULL JOIN table2_ALT ON table1.x=table2.z
WHERE ....

1 个答案:

答案 0 :(得分:0)

您可以尝试如下所示的类似操作:详细了解INSERT ALL,以将其插入到多个表中。

INSERT ALL 
INTO 
table1(a,b) values(a, b)
INTO table2(c,d) values(c, d) 
SELECT table1.x as a,table1.y as b,table2.z as c,table2.k as d
FROM table1
FULL JOIN table2_ALT ON table1.x=table2.z
WHERE ....