Bagian inisialisasi paket seperti namanya dijalankan ketika paket diinisialisasi. Ini terjadi ketika prosedur/fungsi pertama dari paket dijalankan setelah sesi dibuat atau setelah paket dikompilasi ulang. Tujuannya adalah untuk menginisialisasi status global paket yang dapat digunakan selama masa pakai sesi. Semua variabel paket global disimpan dan Anda dapat mengaksesnya nanti.
Contoh:
[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>
Anda melihat bahwa setelah paket dikompilasi, bagian inisialisasi dijalankan ketika prosedur foo
dieksekusi. Paket ini diinisialisasi sekarang. Eksekusi foo
. selanjutnya hanya mengeksekusi prosedur.