Моя цель - проанализировать первую таблицу, проверить, существует ли идентификатор во второй таблице, а затем выполнить некоторые обновления.
Первая таблица выполняется в цикле и анализирует каждую строку во второй таблице для обновления или выдачи выходных данных.
Вот код, который я использовал:
DECLARE
CURSOR c1 FOR (SELECT pnr,agrnumber,pnrcreatedate FROM test2_view_table);
r1 c1%ROWTYPE;
CURSOR c2 FOR (SELECT pnr,ano,pcdt FROM sdh_ticket_test2_update);
r2 c2%ROWTYPE;
BEGIN
FOR r1 IN c1
LOOP
FOR r2 IN c2
LOOP
IF (r1.pnr = r2.pnr and r2.pnrcreatedate is null and
r1.agrnumber=r2.ano)
THEN
c++
else if (r1.pnr = r2.pnr and r2.agrnumber is null and
r1.pcdt=r2.pnrcreatedate)
THEN
a++ -- continue to the next iteration of the outer loop
-- as we have a match
GOTO continue;
END IF;
END LOOP;
-- we can only reach that point if there was no match
DBMS_OUTPUT.PUT_LINE(TO_CHAR(c));
<<continue>>
NULL;
END LOOP;
END;
Для объявления курсора в красном смещении, как указано выше. это выдает мне следующую ошибку.
[Amazon](500310) Invalid operation: syntax error at or near "c1"
Пожалуйста, дайте мне знать, если есть какое-либо решение.