sql >> Base de Datos >  >> RDS >> Oracle

Sección de inicialización del paquete

La sección de inicialización del paquete, como sugiere el nombre, se ejecuta cuando se inicializa el paquete. Esto sucede cuando se ejecuta el primer procedimiento/función del paquete después de que se establece la sesión o después de que el paquete se (re)compila. El propósito es inicializar el estado global del paquete que se puede usar durante la vigencia de la sesión. Todas las variables globales del paquete se mantienen y puede acceder a ellas más tarde.

Ejemplo:

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

Verá que después de compilar el paquete, la sección de inicialización se ejecuta cuando el procedimiento foo es ejecutado. El paquete está inicializado ahora. Cualquier ejecución posterior de foo ejecuta solo el procedimiento.