Pakkeinitieringsafsnittet, som navnet antyder, udføres, når pakken initialiseres. Dette sker, når den første procedure/funktion fra pakken udføres efter session er etableret eller efter pakken er (gen)kompileret. Formålet er at initialisere den globale tilstand af pakken, der kan bruges i løbet af sessionens levetid. Alle globale pakkevariabler bevares, og du kan få adgang til dem senere.
Eksempel:
[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>
Du kan se, at efter pakken er kompileret, udføres initialiseringssektionen, når proceduren foo
er henrettet. Pakken er initialiseret nu. Enhver efterfølgende udførelse af foo
udfører kun proceduren.