Technological recipes that I've held to prepare some solutions DBA environment. (by Felipe Donoso Bastias)

Oct 30, 2007

Script para recompilar objetos inválidos en Oracle

Este script sirve para recompilar todos objetos inválidos en la base de datos, debe ser corrido como el Usuario SYS:

/*
# ----------------------------------------------------------------------
# Autor : Felipe Donoso Bastías
#
# Fecha de creación : 29-08-2007
#
# Objetivo : Recompilar todos los objetos inválidos de la base de datos
#
# Modificado : Felipe Donoso Bastías 04-09-2007
#
# ----------------------------------------------------------------------
*/
SET SERVEROUTPUT ON
DECLARE
CURSOR C_OBJETOS
IS
SELECT OWNER, OBJECT_NAME, OBJECT_TYPE FROM DBA_OBJECTS
WHERE STATUS = 'INVALID';

nombre_objeto VARCHAR2(100);
propietario VARCHAR2(100);
tipo_objeto VARCHAR2(100);
sql_str VARCHAR2(1000);

BEGIN
OPEN C_OBJETOS;
LOOP
FETCH C_OBJETOS INTO propietario, nombre_objeto, tipo_objeto ;
EXIT WHEN C_OBJETOS%NOTFOUND;
IF tipo_objeto = 'PACKAGE BODY' THEN
sql_str := 'ALTER PACKAGE '||propietario||'.'||nombre_objeto||' COMPILE';
dbms_output.put_line(sql_str);
EXECUTE IMMEDIATE sql_str;
sql_str := 'ALTER PACKAGE '||propietario||'.'||nombre_objeto||' COMPILE BODY';
dbms_output.put_line(sql_str);
EXECUTE IMMEDIATE sql_str;
END IF;
IF tipo_objeto = 'PROCEDURE' THEN
sql_str := 'ALTER PROCEDURE '||propietario||'.'||nombre_objeto||' COMPILE';
dbms_output.put_line(sql_str);
EXECUTE IMMEDIATE sql_str;
END IF;
IF tipo_objeto = 'FUNCTION' THEN
sql_str := 'ALTER FUNCTION '||propietario||'.'||nombre_objeto||' COMPILE';
dbms_output.put_line(sql_str);
EXECUTE IMMEDIATE sql_str;
END IF;
IF tipo_objeto = 'TRIGGER' THEN
sql_str := 'ALTER TRIGGER '||propietario||'.'||nombre_objeto||' COMPILE';
dbms_output.put_line(sql_str);
EXECUTE IMMEDIATE sql_str;
END IF;
IF tipo_objeto = 'VIEW' THEN
sql_str := 'ALTER VIEW '||propietario||'.'||nombre_objeto||' COMPILE';
dbms_output.put_line(sql_str);
EXECUTE IMMEDIATE sql_str;
END IF;
END LOOP;
CLOSE C_OBJETOS;
END;
/
Share:

1 comment:

  1. oi andrés,

    interessante o que você propõe. haha: D, é bom que você gostou do meu blog, eu estou contente que meus posts pode parecer interessante. Uma pergunta: Qual é o endereço do seu blog para dar uma olhada?

    Desculpem o meu Português ruim, mas eu falo apenas Inglês e Espanhol ...

    Saudações

    ReplyDelete

Copyright © DBA TIPS | Powered by Blogger
Design by SimpleWpThemes | Blogger Theme by NewBloggerThemes.com | Free Blogger Templates