Удаление должно происходить на основе минимального идентификатора последовательности (column -contract_amendment_curr_id), который является уникальным, и повторяющимся полем является cont_amd_id. Таким образом, старый идентификатор seq, который нужно удалить (принимая мин.) Для cont_amd_id
, в запросе 398 дубликатов, а в таблице 900 записей
Но l oop продолжает работать. В oracle мы можем использовать коллекцию для удаления всех записей. Как этого добиться здесь?
DECLARE
CURSOR main_cur IS
SELECT min(contract_amendment_curr_id) rd,cont_amd_id
FROM external.eai_contract_amendment_currency_bkp1
GROUP BY cont_amd_id;
BEGIN
FOR i IN main_cur
LOOP
DELETE FROM external.eai_contract_amendment_currency_bkp1
WHERE contract_amendment_curr_id=i.rd and cont_amd_id=i.cont_amd_id ;
END LOOP;
commit;
END;