Este script nos permite identificar los objetos invalidos en la base de datos, y nos genera un script sql para recompilar lo que sea necesario.
Espero que les sea de utilidad.
select 'alter ' || decode(object_type, 'PACKAGE BODY', 'PACKAGE', object_type)
|| ' ' || owner || '.' || object_name || ' compile'
|| decode(object_type, 'PACKAGE BODY', ' body;', ';') objetos
from dba_objects
where status='INVALID'
order by owner,
decode(object_type, 'PACKAGE BODY', 'AAA', 'PACKAGE', 'AAB',
substr(object_type, 1, 3)) desc,
object_name;
En 10g es un poco más sencillo recompilar todo, ya que dentro de la carpeta de instalación de la base de datos (ORACLE_HOME) hay una carpeta "rdbms/admin" en donde hay un "utlrp.sql"
personalmente en el servidor me meto al sql plus y lo ejecuto.
sqlplus "/as sysdba"
SQL> @?/rdbms/admin/utlrp
Esto les recompilará todo lo que esté inválido y mostrará un status. Lo malo de esto es que no es posible identificar los objetos en cuestión para ver por que no compilan.
El script que puse en un principio, también funciona para 10g.
mucha suerte.
4 comentarios:
Tenha um dia DYNAMITE meu amigo!
Este fue siempre bastante que hay un montón de ahí a la espera de la derecha.
lo que yo queria, gracias
De manera muy eficiente la información escrita . Es probable que sea valiosa para cualquier persona que lo usess , incluido yo mismo . Mantener el gran trabajo - por cierto voy a echar un vistazo a más puestos de trabajo.
Publicar un comentario