Oracle
 sql >> база данни >  >> RDS >> Oracle

ORA-01775:циклична верига от синоними, но няма синоними

Нямам представа защо получавате грешката за синоним. Но това е много код за нещо, което трябва да бъде единична команда DELETE. Предполагам, че сте го променили на commit-every-n, за да избегнете грешки при връщане назад. Би било хубаво, ако можете да накарате вашия DBA да увеличи пространството за отмяна, за да можете действително да вършите работата, която трябва да вършите. Ако не успеете, мисля, че все още можете да го направите много по-просто:

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;

И можете да обхванете логиката си за повторен опит около това, ако искате.

Извинявам се, ако съм пропуснал някоя тънкост, която прави това различно от това, което правите.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Низ за свързване на Oracle със знак @ в паролата

  2. Oracle PL/SQL колекции - Създаване на вложена таблица в базата данни

  3. Нова инсталация на JDBC за Oracle - не се изпълнява

  4. Oracle - в този обхват не съществува функция с име X

  5. Конвертиране в дата и час от Oracle