Когато стартирам това, получавам грешката "липсва INTO ключова дума".
Защото IGNORE не е ключова дума в Oracle. Това е синтаксисът на MySQL.
Това, което можете да направите, е да използвате 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)
/
От Oracle 10g можем да използваме обединяване, без да обработваме и двата клона. В 9i трябваше да използваме "фиктивен" МАЧИРАН клон.
В по-древните версии единствените опции бяха:
- тествайте за съществуването на реда преди да издадете INSERT (или в подзаявка);
- за да използвате PL/SQL за изпълнение на INSERT и обработка на произтичаща грешка DUP_VAL_ON_INDEX.