У меня проблемы с 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, особенно с синтаксисом несуществующего, поэтому при выполнении я получаю следующую ошибку:
ORA-06550: строка 37, столбец 11: PLS-00103: Обнаружен символ
«INSERT» при ожидании одного из следующих действий:
тогда и или
Символ "then" был заменен на "INSERT" для продолжения.
ORA-06550: line 38, column 10:
PLS-00103: Encountered the symbol "LOOP" when expecting one of the following:
if
ORA-06550: line 40, column 5:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
end not pragma final instantiable order overriding static
member constructor map