A sessão em que o pacote é chamado no momento mantém esse estado do pacote. Se você recompilar o pacote, no momento em que o pacote for chamado nessa sessão novamente, você receberá esse erro.
-
Você pode executar DBMS_SESSION.RESET_PACKAGE; para liberar a memória, cursores e variáveis de pacote após a chamada PL/SQL que fez a chamada terminar de ser executada.
-
Você pode fechar todas as sessões existentes e executar novamente.
-
Você pode fazer o pacote, Pacotes SERIALLY_REUSABLE usandoPRAGMA SERIALLY_REUSABLE;
declaração. Se um pacote forSERIALLY_REUSABLE
, seu estado de pacote é armazenado em uma área de trabalho em um pequeno pool na área global do sistema (SGA). O estado do pacote persiste apenas durante a vida de uma chamada de servidor.