Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Seção de inicialização do pacote


A seção de inicialização do pacote, como o nome sugere, é executada quando o pacote é inicializado. Isso acontece quando o primeiro procedimento/função do pacote é executado após a sessão ser estabelecida ou após o pacote ser (re)compilado. O objetivo é inicializar o estado global do pacote que pode ser usado durante a vida útil da sessão. Todas as variáveis ​​globais do pacote são mantidas e você pode acessá-las posteriormente.

Exemplo:
[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>

Você vê que depois que o pacote é compilado a seção de inicialização é executada quando o procedimento foo É executado. O pacote é inicializado agora. Qualquer execução subsequente de foo executa apenas o procedimento.