问题描述
我想将表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
一样。