首页 > 解决方案 > 从两个不同的表插入到两个不同的表中

问题描述

当我尝试这个时,我得到了错误

“ORA-06550:第 2 行,第 48 列:PL/SQL:ORA-00926:缺少 VALUES 关键字 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 ....

标签: sqloraclesql-insert

解决方案


您可以尝试以下类似的操作:阅读更多关于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 ....

推荐阅读