ORA-04068: existing state of packages has been discarded
OracleO que significa?
Enquanto uma sessão em execução usava o estado de um package, o package foi recompilado, e esse estado foi invalidado. A instância do package mantida pela sessão não é mais válida.
Por que acontece?
O body ou a specification de um package foi recompilado com ALTER/CREATE OR REPLACE enquanto sessões dependentes dele estavam ativas; geralmente ocorre durante o deploy da aplicação em um sistema em produção. Visto junto com ORA-04061/04065.
Como resolver
Executar a chamada novamente (retry) geralmente resolve; na segunda tentativa o package é carregado em sua nova forma. Capture o ORA-04068 na aplicação e tente novamente de forma automática. Aplique as alterações de packages em janelas de manutenção, quando a atividade dos usuários for baixa. Um design de package stateless reduz esse problema.
Mais entradas deste banco
- ORA-00979not a GROUP BY expression
- ORA-00918column ambiguously defined
- ORA-06550line/column PLS-... PL/SQL compilation error
- ORA-01427single-row subquery returns more than one row
- ORA-12899value too large for column
- ORA-30926unable to get a stable set of rows in the source tables
- ORA-08103object no longer exists