sql >> Database >  >> RDS >> Oracle

ORA-01775:doorlopende reeks synoniemen maar er zijn geen synoniemen

Ik heb geen idee waarom je de synoniemfout krijgt. Maar dat is veel code voor iets dat een enkele DELETE-instructie zou moeten zijn. Ik neem aan dat je het hebt gewijzigd in commit-every-n om terugdraaifouten te voorkomen. Het zou fijn zijn als u uw DBA de ruimte voor ongedaan maken zou kunnen laten vergroten, zodat u daadwerkelijk het werk kunt doen dat u moet doen. Als dat niet lukt, denk ik dat je het nog veel eenvoudiger kunt maken:

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;

En als je wilt, kun je je logica voor opnieuw proberen er omheen gooien.

Excuses als ik een subtiliteit heb gemist die dit anders maakt dan wat u doet.



  1. Wat moet ik gebruiken in plaats van volgorde om hiaten te voorkomen?

  2. Hoe dynamische SQL opschonen (voorkomen van SQL-injectie) in SQL Server?

  3. nPLS-00306:verkeerd aantal of typen argumenten in aanroep

  4. Laravel - Willekeurige records pagineren