Vous trouverez ci-dessous un exemple de programme PL/SQL pour compiler toutes les spécifications de package non valides et tous les corps de package non valides pour l'utilisateur actuel (SCHEMA) dans Oracle. De plus, si l'un des packages non valides n'est pas compilé avec succès, il imprimera le nom du package pour une vérification manuelle des erreurs.
Compiler tous les packages non valides dans l'exemple 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; /
Exemple de résultat (en cas d'erreur) :
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.
Voir aussi :
- Comment créer une procédure dans un package dans Oracle
- Comment vérifier le nombre d'objets non valides dans Oracle
- 20 exemples utiles d'instructions d'insertion Oracle