ORA-01466: unable to read data - table definition has changed (não é possível ler os dados; a definição da tabela mudou)
OracleO que significa?
Uma consulta que lia dados de um ponto no passado (Flashback Query, AS OF ou leitura consistente) falhou porque a definição da tabela (DDL) mudou entre o momento passado consultado e agora. O Oracle não consegue ler com segurança os dados daquele momento com a definição atual.
Por que acontece?
Um DDL (adição/remoção de coluna, mudança de tipo) foi aplicado à tabela após o timestamp visado pela consulta Flashback/AS OF. Além disso, diferenças de relógio entre cliente e servidor ou consultas a um passado muito recente (alguns segundos) podem gerar este erro devido à resolução de SCN/tempo.
Como resolver
Execute a consulta flashback para um momento/SCN anterior à mudança de DDL da tabela. Sempre que possível, use um SCN exato em vez de um timestamp (AS OF SCN). Para consultas a um passado muito recente, volte alguns segundos. Se for necessário acesso histórico permanente, considere um design de tabela de versionamento ou de arquivo em vez de DDL.
Mais entradas deste banco
- ORA-00494enqueue held for too long by 'inst N, osid M' (enqueue mantido por tempo demais)
- ORA-04021timeout occurred while waiting to lock object (timeout ao aguardar o lock de um objeto)
- ORA-04061existing state of package/procedure has been invalidated (o estado existente do package/procedure foi invalidado)
- ORA-08176consistent read failure; rollback data not available (falha de leitura consistente; dados de rollback indisponíveis)
- ORA-00020maximum number of processes (N) exceeded (número máximo de processos (N) excedido)
- ORA-01113file N needs media recovery
- ORA-02393exceeded call limit on CPU usage