Pillole Oracle: scovare e ricompilare oggetti invalidati

oracle
Oracle logo

Ogni tanto capita che in seguito ad operazioni di modifica di programmi Oracle, alcuni oggetti da questi dipendenti risultino invalidati. Di solito, invocando questi oggetti con un client risulta in un errore a runtime.

L’istruzione che permette di trovare lo stato degli oggetti è il seguente e deve essere lanciato da un utente con privilegi di DBA:

select
   comp_id,
   comp_name,
   version,
   status,
   namespace,
   schema
from
   dba_registry;

Uno script che individua gli oggetti (packages PL/SQL, procedure, funzioni e corpi di package) è invece il seguente

invalid.sql

Set heading off;
set feedback off;
set echo off;
Set lines 999;
Spool run_invalid.sql

select
	'ALTER ' || OBJECT_TYPE || ' ' ||
	 OWNER || '.' || OBJECT_NAME || ' COMPILE;'
from
	 dba_objects
where
	 status = 'INVALID'
and
	 object_type in ('PACKAGE','FUNCTION','PROCEDURE');

spool off;

set heading on;
set feedback on;
set echo on;

@run_invalid.sql

Link utili

Altri post sull’argomento

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.