Když to spustím, zobrazí se mi chyba „chybějící klíčové slovo INTO“.
Protože IGNORE není klíčové slovo v Oracle. To je syntaxe MySQL.
Co můžete udělat, je použít 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)
/
Od Oracle 10g můžeme použít merge bez manipulace s oběma větvemi. V 9i jsme museli použít "fiktivní" větev MATCHED.
Ve starověkých verzích byly jediné možnosti buď:
- otestujte existenci řádku před vydáním INSERT (nebo v dílčím dotazu);
- použít PL/SQL ke spuštění INSERT a zpracování jakékoli výsledné chyby DUP_VAL_ON_INDEX.