Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

ORA-01775:cadeia de sinônimos em loop, mas não há sinônimos


Não tenho ideia de por que você está recebendo o erro de sinônimo. Mas isso é muito código para algo que deveria ser uma única instrução DELETE. Suponho que você tenha alterado para commit-every-n para evitar erros de reversão. Seria bom se você pudesse fazer com que seu DBA aumentasse o espaço de desfazer para que você possa realmente fazer o trabalho que precisa fazer. Caso contrário, acho que você ainda pode simplificar muito:
LOOP
  DELETE FROM log_master
    WHERE last_changed_date < :purge_date
      AND event_id = :event_id
      AND rownum <= :batch_delete_limit
    USING purge_date, event_id, l_bulk_collect_limit;
  EXIT WHEN SQL%NOTFOUND;
END LOOP;

E você pode usar sua lógica de repetição em torno disso, se quiser.

Desculpe se eu perdi alguma sutileza que torna isso diferente do que você está fazendo.