sql >> Base de Datos >  >> RDS >> Oracle

ORA-01775:cadena en bucle de sinónimos pero no hay sinónimos

No tengo idea de por qué obtienes el error de sinónimo. Pero eso es mucho código para algo que debería ser una sola instrucción DELETE. Supongo que lo ha cambiado a commit-every-n para evitar errores de reversión. Sería bueno si pudiera hacer que su DBA aumentara el espacio de deshacer para que pueda hacer el trabajo que necesita hacer. De lo contrario, creo que aún puede hacerlo mucho más simple:

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;

Y puede usar su lógica de reintento si lo desea.

Disculpas si me perdí alguna sutileza que hace que esto sea diferente de lo que estás haciendo.