插入不同数量的列

问题描述

我想将表A(NAG)中的一行插入表B(Kunde)中。

表NAG只有4列,表Kunde有13列。由于列号不同,所以我总是会报错:ora-00913的值太多。

我使用的查询是:

INSERT INTO kunde
SELECT * FROM NAG
left outer join kunde ON NAG.adrnr = kunde.adrnr
WHERE kunde.adrnr IS NULL

adrnr是客户ID。如果有帮助,我正在使用sqltools 1.8b38。 谁能帮我解决这个问题?谢谢。

解决方法

您需要在insert命令中枚举目标列,并相应地从源表中select枚举相关列。

看起来像你想要的

insert into kunde (adrnr,tmstmp,matchcode,art)
select n.adrnr,n.tmstmp,n.matchcode,n.art
from nag n
where not exists (select 1 from kunde k where n.adrnr = k.adrnr)

我将left join ... where ... is null改写为not exists,因为我发现它更清楚-但逻辑上他和left join一样。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...