ORA-00604: error occurred at recursive SQL level
OracleNe demek?
Oracle'ın arka planda kendi çalıştırdığı özyinelemeli (recursive) SQL sırasında bir hata oluştu. Bu asıl hatayı gizleyen bir sarmalayıcı (üst) hatadır; gerçek sebep hemen altında listelenen ikinci hata kodunda yer alır.
Neden olur?
Sözlük (data dictionary) erişimi, bir DDL trigger'ının hata vermesi, sistem tablespace'inin dolması, geçici alan yetersizliği, bozuk bir veri sözlüğü nesnesi veya oturum açılışında çalışan LOGON trigger'ının başarısız olması.
Nasıl çözülür?
Hata stack'inde ORA-00604'ten hemen sonra gelen ikinci satırı okuyun; asıl neden odur ve onu çözün. Örneğin ORA-01653 görürseniz tablespace genişletin. Şüpheli bir DDL/LOGON trigger varsa geçici olarak devre dışı bırakın: ALTER TRIGGER trigger_adi DISABLE; SYSTEM ve TEMP tablespace doluluğunu DBA_FREE_SPACE ile kontrol edin.
Aynı motorda diğer kayıtlar
- buffer busy waitsWait: başka bir oturumun okuduğu ya da değiştirdiği buffer üzerinde contention
- gc buffer busyWait (RAC): instance'lar arasında taşınan cache fusion block'u üzerinde contention
- library cache lockWait: library cache nesne handle'ı üzerinde contention (parse/DDL sıralaması)
- ORA-01438value larger than specified precision allowed for this column
- ORA-01400cannot insert NULL into (column)
- ORA-02291integrity constraint violated - parent key not found
- ORA-02292integrity constraint violated - child record found