Pular para o conteúdo

Problema ao Recompilar Package após atualizar Banco de Dados

Problema ao Recompilar Package após atualizar Banco de Dados

Olá Pessoal

Hoje estarei compartilhando um Problema (Erro) que me fez perder um bom tempo para resolver.

Tudo isso devido o Programa PL/SQL Developer não conseguir recompilar todas as Packages com sucesso.

Recompilei Package por Package e Trigger por Trigger e nada com PL/SQL Developer.

Com isso resolvi mudar a forma de recompilar utilizando a Procedure compile_schema da Package DBMS_UTILITY com SQLPLUS.


ERRO SOLICITADO:

Erro após atualizar um Package ou Trigger no Banco de Dados.

ORA-04061: Existing state of string has been invalidated.

ORA-04061: Estado existente de package (USER.REPLIC) foi invalidado.

ORA-06508: PL/SQL: não foi localizada a unidade de programa que está sendo chamada: (USER.REPLIC).

ORA-04088: Erro durante a execução do gatilho (USER.T_COM_FECHAMENTO_IMPORTACAO).


CAUSA:

Tentativa de reiniciar a execução de um Package usando existente estado que tem tornado inválido ou inconsistente com o Package, porque o Package tem sido alterado ou dropado.

Programa PL/SQL Developer recompila todos os objetos, consta a Package como compilada com sucesso, mas quando roda a aplicação da Erro na Package.


SOLUÇÃO:

Tentar novamente recompilar todos os Pacotes; este erro deveria ser causado a situação atual de todos os pacotes para ser re-inicializado. Executar DBMS_UTILITY.compile_schema.

A Procedure COMPILE_SCHEMA na Package DBMS_UTILITY compila todas as Procedures, Functions, Packages, e Triggers em um Schema específico.

Conectar como SYS ou SYSTEM no SQLPLUS e executar o seguinte comando setando o Schema:

PLSQL
SQL>exec dbms_utility.compile_schema(schema=>'nomeschema');

Procedimento PL/SQL concluído com sucesso.

Pronto, objetos recompilados com sucesso.

Abraço

Bruno Murassaki

Bruno Murassaki

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress