ORA-01466: unable to read data - table definition has changed
OracleNe demek?
Geçmiş bir zamandan veri okuyan bir sorgu (Flashback Query, AS OF, ya da tutarlı okuma) başarısız oldu çünkü sorgulanan geçmiş zaman ile şimdi arasında tablonun tanımı (DDL) değişmiş. Oracle o zaman noktasındaki veriyi güncel tanımla güvenle okuyamıyor.
Neden olur?
Flashback/AS OF sorgusunun hedeflediği zaman damgasından sonra tabloya bir DDL (kolon ekleme/silme, tip değişimi) uygulandı. Ayrıca istemci ile sunucu arasındaki saat farkı ya da yakın geçmişteki (birkaç saniyelik) sorgular da SCN/zaman çözünürlüğü nedeniyle bu hatayı verebilir.
Nasıl çözülür?
Flashback sorgusunu, tablonun DDL değişikliğinden önceki bir zamana/SCN'e göre çalıştırın. Mümkünse zaman damgası yerine kesin SCN kullanın (AS OF SCN). Çok yakın geçmiş sorgularında birkaç saniye geri gidin. Kalıcı geçmiş erişim gerekiyorsa DDL yerine sürümleme (versiyonlama) veya arşiv tablosu tasarımını değerlendirin.
Aynı motorda diğer kayıtlar
- ORA-00494enqueue held for too long by 'inst N, osid M'
- ORA-04021timeout occurred while waiting to lock object
- ORA-04061existing state of package/procedure has been invalidated
- ORA-08176consistent read failure; rollback data not available
- ORA-00020maximum number of processes (N) exceeded
- ORA-01113file N needs media recovery
- ORA-02393exceeded call limit on CPU usage