Я пытаюсь заставить SQL-запрос ниже работать, но я получаю сообщение об ошибке, моя проблема заключается в следующем:
Мне нужно перебрать набор результатов из оператора select (эта часть в порядке). Внутри цикла для каждой строки мне нужно проверить, существует ли URL-адрес в таблице A. Если это так, вставьте сопоставление в таблицу B, в противном случае вставьте новую строку в таблицу C.
Это то, что у меня есть, но когда я пытаюсь выполнить, я получаю сообщение об ошибке в строке с IF, говорящим ORA-06550: строка 8, столбец 15: PLS-00103: обнаружен символ «ВЫБОР» при ожидании одного из следующих :( - + кейс мод новый нет.....
DECLARE
STANDARD_LINK_ID TABLEB.LINK_ID%type;
BEGIN
FOR LINK_ROW IN ( SELECT LINKTEXT, LINKURL, CORPID FROM OLD_DATA)
LOOP
IF (SELECT COUNT(URL) FROM TABLEA WHERE URL = LINK_ROW.LINKURL) = 1
THEN
SELECT LINKID INTO STANDARD_LINK_ID FROM TABLEA WHERE URL = LINK_ROW.URL;
INSERT INTO TABLEB(LINK_ID, CORP_ID)
VALUES (STANDARD_LINK_ID, LINK_ROW.CORPID);
ELSE
INSERT INTO TABLEB(LINK_ID, LINK_NAME, URL, CORP_ID)
VALUES (SEQ_LINK.NEXTVAL, LINK_ROW.LINKTEXT, LINK_ROW.LINKURL,
LINK_ROW.CORP_ID);
END IF;
END LOOP;
COMMIT;
END;