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

ORA-01775:sløjfekæde af synonymer, men der er ingen synonymer

Jeg aner ikke hvorfor du får synonymfejlen. Men det er meget kode for noget, der burde være en enkelt DELETE-sætning. Jeg går ud fra, at du har ændret det til commit-every-n for at undgå rollback-fejl. Det ville være rart, hvis du kunne få din DBA til at øge fortryd-pladsen, så du rent faktisk kan udføre det arbejde, du skal udføre. Hvis det ikke lykkes, tror jeg, du stadig kan gøre det meget enklere:

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;

Og du kan kaste din logik til at prøve igen, hvis du vil.

Undskyld, hvis jeg har savnet en eller anden finesse, der gør dette anderledes end det, du laver.



  1. Brug af en IN-klausul med MySQL med angivne værdier

  2. Hvorfor lang datatype er blevet erstattet af LOB i Oracle?

  3. Mysql sammenligner kommasepareret felt med enkelt streng

  4. Hvad er forskellen mellem 'ikke i' og 'eksisterer ikke'?