Ваш код должен работать без проблем, если первичный ключ в целевой таблице определен в столбце AcctCode
В EXISTS () или NOT EXISTS () вам не нужно выбирать с именами столбцов, этотолько логическая проверка, поэтому вы можете изменить ее следующим образом
insert into OACT (
AcctCode,AcctName,CurrTotal,
FatherNum,SysTotal,CreateDate
,UpdateDate,ActId,FormatCode
)
select
tab2.AcctCode,tab2.AcctName,tab2.CurrTotal,
tab2.FatherNum,tab2.SysTotal,tab2.CreateDate,
tab2.UpdateDate,tab2.ActId,tab2.FormatCode
from HanaSql8.."TRAININGDB"."OACT" tab2
Where NOT EXISTS (
Select *
from OACT tab1
where tab1.AcctCode=tab2.AcctCode
);
Мы можем протестировать предложение LEFT JOIN в качестве альтернативы NOT EXISTS ()
Вот запрос
insert into OACT (
AcctCode,AcctName
)
select
tab2.AcctCode,tab2.AcctName
from HanaSql8.."TRAININGDB"."OACT" tab2
left join OACT tab1
on tab1.AcctCode=tab2.AcctCode
where tab1.AcctCode is null