Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment compiler tous les packages non valides dans le schéma ?

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