Oracle
 sql >> Database >  >> RDS >> Oracle

ORA-01775:catena di sinonimi ad anello ma non ci sono sinonimi

Non ho idea del motivo per cui stai ricevendo l'errore dei sinonimi. Ma è molto codice per qualcosa che dovrebbe essere una singola istruzione DELETE. Presumo che tu l'abbia modificato in commit-every-n per evitare errori di rollback. Sarebbe bello se potessi fare in modo che il tuo DBA aumenti lo spazio di annullamento in modo da poter effettivamente fare il lavoro che devi fare. In caso contrario, penso che tu possa ancora renderlo molto più semplice:

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 puoi aggirare la logica dei tentativi, se lo desideri.

Mi scuso se ho perso qualche sottigliezza che lo rende diverso da quello che stai facendo.