Invalids Objects – Oracle

Alguns objetos fazem podem referencia a outros objetos com parte de sua definição. Por exemplo, um procedimento pode conter uma instrução SELECT que seleciona colunas de uma tabela. Por esse motivo, o procedimento é chamado de objeto dependente, enquanto a tabela é chamada de objeto referenciado. Se você alterar a definição de um objeto referenciado, os objetos dependentes podem ou não continuar funcionando adequadamente.O Oracle Server registra, automaticamente, as dependências entre objetos. Para gerenciar as dependências, todos os objetos do esquema possuem um status (VALID ou INVALID registrado no dicionário de dados na view USER_OBJECTS (mostra os objetos referentes ao usuário conectado) ou DBA_OBJECTS (mostra todos os objetos do banco).

Para verificar quais objetos estão com o status INVALID:

COLUMN Object_Name FORMAT A30

SELECT
	  Owner
	, Object_Type
	, Object_Name
	, Status
FROM
	DBA_Objects --User_Objects
WHERE
	Status = 'INVALID'
ORDER BY
	Owner, Object_Type, Object_Name;

Para recompilar os objetos inválidos:

-- Recompilar PACKAGE
SELECT 'alter '||Object_Type||' '||Owner||'.'||Object_Name||' compile '||Object_Type||';'
FROM 	DBA_Objects WHERE Status = 'INVALID' And Object_Type = 'PACKAGE';

-- Recompilar PACKAGE BODY, TYPE, TYPE BODY
SELECT 'alter '||Object_Type||' '||Owner||'.'||Object_Name||' compile BODY;'
FROM 	DBA_Objects WHERE Status = 'INVALID' And Object_Type In ('PACKAGE BODY','TYPE','TYPE BODY','');

-- Recompilar VIEW, SYNONYM, TRIGGER, PROCEDURE, FUNCTION, INDEXTYPE, INDEX, OPERATOR
SELECT 'alter '||Object_Type||' '||Owner||'.'||Object_Name||' compile;'
FROM 	DBA_Objects WHERE Status = 'INVALID' And Object_t=Type In 	('VIEW','SYNONYM','TRIGGER','PROCEDURE','FUNCTION','INDEXTYPE','INDEX','OPERATOR');

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s