Páginas

jueves, 29 de abril de 2010

Compilar Objetos inválidos en Oracle

Este código le ayudará a compilar los objetos que estén con estado inválido
CREATE OR REPLACE PROCEDURE COMPILAR IS
--- Se Obtiene la Lista de Objetos Inválidos
CURSOR compila IS
SELECT 'alter '||DECODE(object_type,'PACKAGE BODY','PACKAGE',object_type)||' '||owner||'.'||object_name||' compile'||
       DECODE(object_type,'PACKAGE BODY',' BODY','') sentencia, owner, object_type, object_name
FROM ALL_OBJECTS
WHERE status<>'VALID'
ORDER BY DECODE(object_type,'PACKAGE BODY',1,0),1;
BEGIN
FOR C IN compila
    LOOP
EXECUTE IMMEDIATE C.sentencia;
END LOOP;
END;