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. 条件のみが満たされている場合にSQL構文を使用してMySQLテーブルから最後のレコードを選択する方法

    2. 最後に、いいえ、IDENT_CURRENT()を信頼することはできません

    3. 多くのテーブルの1つへの外部キー?

    4. Pythonのsqlalchemyのexecute()とpymysqlを使用してクエリで%をエスケープする方法は?