Hieronder ziet u een voorbeeld van een PL/SQL-programma om alle ongeldige pakketspecificaties te compileren en alle ongeldige pakketteksten voor de huidige gebruiker (SCHEMA) in Oracle. Als een van de ongeldige pakketten niet succesvol is gecompileerd, wordt de pakketnaam afgedrukt voor handmatige foutcontrole.
Compileer alle ongeldige pakketten in Oracle-voorbeeld
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; /
Voorbeelduitvoer (indien fout):
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.
Zie ook:
- Hoe maak je een procedure aan in een pakket in Oracle
- Het aantal ongeldige objecten controleren in Oracle
- 20 Handige Oracle Insert Statement-voorbeelden