Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Initialisierungsabschnitt des Pakets

Der Paketinitialisierungsabschnitt wird, wie der Name schon sagt, ausgeführt, wenn das Paket initialisiert wird. Dies geschieht, wenn die erste Prozedur/Funktion aus dem Paket ausgeführt wird, nachdem die Sitzung eingerichtet oder das Paket (neu) kompiliert wurde. Der Zweck besteht darin, den globalen Status des Pakets zu initialisieren, das während der Lebensdauer der Sitzung verwendet werden kann. Alle globalen Variablen des Pakets werden beibehalten und Sie können später darauf zugreifen.

Beispiel:

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

Sie sehen, dass nach dem Kompilieren des Pakets der Initialisierungsabschnitt ausgeführt wird, wenn die Prozedur foo ausgeführt wird wird ausgeführt. Das Paket ist jetzt initialisiert. Jede nachfolgende Ausführung von foo führt nur die Prozedur aus.