Phần khởi tạo gói như đề xuất tên được thực thi khi gói được khởi tạo. Điều này xảy ra khi thủ tục / chức năng đầu tiên từ gói được thực thi sau khi phiên được thiết lập hoặc sau khi gói được biên dịch (lại). Mục đích là khởi tạo trạng thái chung của gói có thể được sử dụng trong suốt thời gian tồn tại của phiên. Tất cả các biến toàn cục của gói được giữ lại và bạn có thể truy cập chúng sau này.
Ví dụ:
[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>
Bạn thấy rằng sau khi gói được biên dịch, phần khởi tạo được thực thi khi thủ tục foo
được thực thi. Gói được khởi tạo ngay bây giờ. Mọi thực thi tiếp theo của foo
chỉ thực hiện thủ tục.