У меня есть следующий код:
CURSOR Q1 IS
SELECT COL1, COL2, COL3, COL4, COL5, COL6 FROM TABLE1;
CURSOR Q2 IS
SELECT COL11, COL22, COL33, COL44, COL55, COL66 FROM TABLE2;
PRESENT BOOLEAN;
FOR X IN Q1 LOOP
PRESENT := FALSE;
FOR Y IN Q2 LOOP
IF (X.COL3 = Y.COL33) AND (X.COL4 = Y.COL44) THEN
PRESENT := TRUE;
EXIT;
END IF;
END LOOP;
IF NOT PRESENT THEN
UPDATE TABLE_X SET COL_A = 'Y';
COMMIT;
END IF;
END LOOP;
Я не уверен, смогу ли я преобразовать этот код в оператор MERGE или что-то более эффективное, если ДА, может ли кто-нибудь помочь мне в преобразовании этого кода.
Заранее спасибо за ваше время и помощь!
table_x
? Почему вы устанавливаете их все на одно и то же значение? - person Gordon Linoff   schedule 06.03.2020TABLE_X
на каждой итерации цикла (в вашемUPDATE
нет предложенияWHERE
), действительно ли это то, что вы хотите? - person GMB   schedule 06.03.2020