Oracle
 sql >> Database >  >> RDS >> Oracle

Sezione di inizializzazione del pacchetto

La sezione di inizializzazione del pacchetto come suggerito dal nome viene eseguita quando il pacchetto viene inizializzato. Ciò accade quando la prima procedura/funzione dal pacchetto viene eseguita dopo che la sessione è stata stabilita o dopo che il pacchetto è stato (ri)compilato. Lo scopo è inizializzare lo stato globale del pacchetto che può essere utilizzato durante la durata della sessione. Tutte le variabili globali del pacchetto vengono mantenute e puoi accedervi in ​​seguito.

Esempio:

[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>

Vedi che dopo che il pacchetto è stato compilato, la sezione di inizializzazione viene eseguita quando la procedura foo viene eseguito. Il pacchetto è ora inizializzato. Qualsiasi successiva esecuzione di foo esegue solo la procedura.