sql - insert if not exists

У меня проблемы с sql-запросом. Мне нужно вставить строку, если такая же строка еще не существует. Вот что у меня получилось:

DECLARE
BEGIN
   FOR FOLDER_ROW IN (SELECT FOLDERID, USERID FROM DATA1.FOLDERS)
      LOOP                       
          IF NOT EXISTS (SELECT * FROM DATA1.FOLDER_USER WHERE FOLDER_ID = FOLDER_ROW.FOLDERID AND USER_ID = FOLDER_ROW.USERID) 
          INSERT INTO DATA1.FOLDER_USER (FOLDER_ID, USER_ID) VALUES (FOLDER_ROW.FOLDERID, FOLDER_ROW.USERID);
     END LOOP;
    COMMIT;
END;

Я не очень хорошо знаком с sql, особенно с синтаксисом not exists, поэтому при выполнении я получаю следующую ошибку:

ORA-06550: line 37, column 11: PLS-00103: Encountered the symbol "INSERT" при ожидании одного из следующих:

then and or

Символ "then" был заменен на "INSERT" для продолжения.

ORA-06550: строка 38, столбец 10:
PLS-00103: встретился символ "LOOP", когда ожидалось одно из следующих:

 if
ORA-06550: строка 40, столбец 5:
PLS-00103: Встречен символ "end-of-file", когда ожидается одно из следующих:

 end not pragma final instantiable order overriding static
 член конструктор карта
5
задан Jon Egerton 18 November 2011 в 16:04
поделиться