Di seguito è riportato un esempio di programma PL/SQL per compilare tutte le specifiche di pacchetto non valide e tutti i corpi dei pacchetti non validi per l'utente corrente (SCHEMA) in Oracle. Inoltre, se uno qualsiasi dei pacchetti non validi non viene compilato correttamente, stamperà il nome del pacchetto per il controllo manuale degli errori.
Compila tutti i pacchetti non validi nell'esempio Oracle
SET SERVEROUTPUT ON; DECLARE CURSOR c_pkg IS SELECT owner, object_type, object_name FROM dba_objects WHERE status = 'INVALID' AND owner = USER AND object_type LIKE 'PACKAGE%' ORDER BY object_type; BEGIN FOR c IN c_pkg LOOP BEGIN IF c.object_type = 'PACKAGE' THEN EXECUTE IMMEDIATE 'ALTER PACKAGE ' || c.owner || '.' || c.object_name || ' COMPILE'; ELSE EXECUTE IMMEDIATE 'ALTER PACKAGE ' || c.owner || '.' || c.object_name || ' COMPILE BODY'; END IF; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line(c.object_type || ' ' || c.object_name || ' is still invalid. Check the package manually to resolve.'); END; END LOOP; END; /
Esempio di output (se c'è un errore):
PACKAGE EMP_PKG is still invalid. Check the package manually to resolve. PACKAGE BODY EMP_PKG is still invalid. Check the package manually to resolve. PL/SQL procedure successfully completed.
Vedi anche:
- Come creare una procedura all'interno di un pacchetto in Oracle
- Come controllare il conteggio degli oggetti non validi in Oracle
- 20 utili esempi di istruzioni di inserimento Oracle