sexta-feira, 7 de fevereiro de 2020

Objetos de banco com tag vermelha no Browser de Objetos

Olá,

algumas pessoas ficam intrigadas com o fato de no "Browser de objetos" aparecer uma tag vermelha indicando que o objeto está inválido.

Veja na figura abaixo um exemplo:



Este é um comportamento padrão do Oracle. Quando modificamos um objeto, os objetos dependentes ficam inválidos, pois o Oracle espera que a gente os recompile.

Se você tem certeza que a modificação que você fez, não terá impacto nos objetos dependentes, não fique preocupado com isso!

Quando a aplicação precisar utilizar este objeto "inválido" (na verdade ainda não recompilado), a primeira coisa que o Oracle fará automaticamente é a recompilação do objeto e, caso realmente esteja tudo certo, o objeto será utilizado normalmente!

Caso prefira, para remover a tag vermelha, você precisa recompilar o objeto!


Mas se houver muitos objetos, rode o script abaixo no Comandos SQL para recompilar todos os objetos inválidos (A execução pode demorar alguns segundos dependendo da quantidade de objetos inválidos):

BEGIN
DBMS_UTILITY.compile_schema(schema => :NOME_ESQUEMA, compile_all => false);
END;

Repare na imagem abaixo que a minha execução demorou mais de 6 segundos, mas este tempo pode ser maior dependendo do seu ambiente.





Para conferir os objetos que ainda permanecem inválidos (agora sim com provável erro), execute a seguinte consulta no Comandos SQL:

SELECT object_type,

       object_name,
       status
FROM   user_objects
WHERE  status = 'INVALID'
ORDER BY object_type, object_name;

Espero que tenha gostado!

Até a próxima!


Nenhum comentário:

Postar um comentário