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

Section d'initialisation du package

La section d'initialisation du package, comme son nom l'indique, est exécutée lorsque le package est initialisé. Cela se produit lorsque la première procédure/fonction du package est exécutée après l'établissement de la session ou après la (re)compilation du package. Le but est d'initialiser l'état global du package qui peut être utilisé pendant la durée de vie de la session. Toutes les variables globales du package sont conservées et vous pouvez y accéder ultérieurement.

Exemple :

[email protected]_pdb_tcp> CREATE OR REPLACE PACKAGE test_package
  2  IS
  3     PROCEDURE foo;
  4  END;
  5  /

Package created.

[email protected]_pdb_tcp> CREATE OR REPLACE PACKAGE BODY test_package
  2  IS
  3     PROCEDURE foo
  4     IS
  5     BEGIN
  6             DBMS_OUTPUT.PUT_LINE('Procedure executed. ');
  7     END;
  8
  9  BEGIN
 10     DBMS_OUTPUT.PUT_LINE('Package initialized. ');
 11  END;
 12  /

Package body created.

[email protected]_pdb_tcp> EXEC test_package.foo
Package initialized.
Procedure executed.

PL/SQL procedure successfully completed.

[email protected]_pdb_tcp> EXEC test_package.foo
Procedure executed.

PL/SQL procedure successfully completed.

[email protected]_pdb_tcp>

Vous voyez qu'après la compilation du package, la section d'initialisation est exécutée lorsque la procédure foo est exécuté. Le package est maintenant initialisé. Toute exécution ultérieure de foo exécute uniquement la procédure.