Quando lo eseguo, ottengo l'errore "parola chiave INTO mancante".
Perché IGNORE non è una parola chiave in Oracle. Questa è la sintassi MySQL.
Quello che puoi fare è usare MERGE.
merge 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)
/
Da Oracle 10g possiamo usare merge senza gestire entrambi i rami. In 9i abbiamo dovuto usare un ramo MATCHED "dummy".
Nelle versioni più antiche le uniche opzioni erano:
- verifica l'esistenza della riga prima di emettere un INSERT (o in una sottoquery);
- per utilizzare PL/SQL per eseguire INSERT e gestire qualsiasi errore DUP_VAL_ON_INDEX risultante.