Wenn ich dies ausführe, erhalte ich den Fehler "missing INTO keyword" .
Weil IGNORE kein Schlüsselwort in Oracle ist. Das ist MySQL-Syntax.
Was Sie tun können, ist MERGE.
zu verwendenmerge into table1 t1
using (select 'value1' as value1 ,value2
from table2
where table2.type = 'ok' ) t2
on ( t1.value1 = t2.value1)
when not matched then
insert values (t2.value1, t2.value2)
/
Ab Oracle 10g können wir Merge verwenden, ohne beide Zweige zu behandeln. In 9i mussten wir einen "dummy" MATCHED-Zweig verwenden.
In älteren Versionen waren die einzigen Optionen entweder :
- prüfen, ob die Zeile existiert, bevor ein INSERT (oder in einer Unterabfrage) ausgegeben wird;
- zur Verwendung von PL/SQL zur Ausführung von INSERT und zur Behandlung aller resultierenden DUP_VAL_ON_INDEX-Fehler.