Unten ist ein Beispiel für ein PL/SQL-Programm zum Kompilieren aller ungültigen Paketspezifikationen und alle ungültigen Pakettexte für den aktuellen Benutzer (SCHEMA) in Oracle. Wenn eines der ungültigen Pakete nicht erfolgreich kompiliert wird, wird außerdem der Paketname zur manuellen Fehlerprüfung gedruckt.
Alle ungültigen Pakete im Oracle-Beispiel kompilieren
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; /
Beispielausgabe (falls ein Fehler vorliegt):
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.
Siehe auch:
- Wie man eine Prozedur innerhalb eines Pakets in Oracle erstellt
- So überprüfen Sie die Anzahl ungültiger Objekte in Oracle
- 20 nützliche Beispiele für Oracle Insert-Anweisungen