PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Pacotes se tornando inválidos durante execução #460581

08/11/2013

0

Olá a todos,

Pessoal, estou com um problema e pode ser que alguém aqui possa me dar uma dica.

Desenvolvo para Banco de Dados Oracle e possuo vários pacotes (PACKAGES) que se relacionam entre si para executar uma determinada tarefa. Um dos pacotes é o "centralizador" das operações, chamando funções de vários outros pacotes auxiliares.

Acontece que, durante as operações, faz-se necessário, através de uma das funções chamadas, que se desabilitem todas as FKs, índices, etc, de uma determinada Tabela que sofrerá uma operação de INSERT em massa, para melhorar a performance. O problema é exatamente após a execução da função que desabilita todas estas constraints.

Ao desabilitar as constraints, o próprio Pacote centralizador (e até outros auxiliares ao processo) tornam-se inválidos, ocasionando erro logo a seguir, erro típico de pacotes inválidos.

Tentei utilizar uma função, a dbms_utility.compile_schema( ) do próprio Oracle, após a chamada da função que desabilita as constraints, porém sem sucesso.

Parece que mesmo tentando revalidar os pacotes, por já estar em execução durante uma sessão Oracle, a função dbms_utility.compile_schema( ) não está tendo êxito e o problema persiste. Já tentei usar uma outra função, também criada por mim, que executa dbms_utility.validate( ) em TODOS os pacotes utilizados pelo meu processo, mas também não funcionou.

Tornei a função principal do pacote chamador em uma função autônoma, com a diretiva PRAGMA AUTONOMOUS_TRANSACTION, para ver se isso resolvia o problema, mas ainda não funcionou.

Bom, alguém já passou por isso ou tem alguma sugestão?

Abraço!
Marcelo Cunha

Marcelo Cunha

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar