ORA-01466: unable to read data - table definition has changed
OracleWas bedeutet das?
Eine Abfrage, die Daten eines vergangenen Zeitpunkts liest (Flashback Query, AS OF oder Consistent Read), ist fehlgeschlagen, weil sich die Tabellendefinition (DDL) zwischen dem abgefragten Zeitpunkt und jetzt geändert hat. Oracle kann die Daten dieses Zeitpunkts mit der aktuellen Definition nicht sicher lesen.
Ursache
Nach dem Zeitstempel, auf den die Flashback-/AS-OF-Abfrage zielt, wurde eine DDL auf die Tabelle angewendet (Spalte hinzugefügt/entfernt, Typänderung). Auch Uhrzeitabweichungen zwischen Client und Server oder Abfragen der jüngsten Vergangenheit (wenige Sekunden) können wegen der SCN-/Zeitauflösung diesen Fehler auslösen.
Lösung
Führe die Flashback-Abfrage gegen einen Zeitpunkt/eine SCN vor der DDL-Änderung der Tabelle aus. Verwende nach Möglichkeit eine exakte SCN statt eines Zeitstempels (AS OF SCN). Gehe bei Abfragen der jüngsten Vergangenheit einige Sekunden zurück. Wird dauerhafter Zugriff auf historische Daten benötigt, erwäge statt DDL ein Design mit Versionierungs- oder Archivtabellen.
Weitere Einträge zu dieser Datenbank
- 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