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.