De sectie voor pakketinitialisatie, zoals de naam doet vermoeden, wordt uitgevoerd wanneer het pakket wordt geïnitialiseerd. Dit gebeurt wanneer de eerste procedure/functie van het pakket wordt uitgevoerd nadat de sessie tot stand is gebracht of nadat het pakket is (opnieuw) gecompileerd. Het doel is om de globale status van het pakket te initialiseren dat kan worden gebruikt tijdens de levensduur van de sessie. Alle globale pakketvariabelen worden bewaard en u kunt ze later openen.
Voorbeeld:
[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>
U ziet dat nadat het pakket is gecompileerd de initialisatiesectie wordt uitgevoerd wanneer procedure foo
is geëxecuteerd. Het pakket is nu geïnitialiseerd. Elke volgende uitvoering van foo
voert alleen de procedure uit.