sql >> Database teknologi >  >> RDS >> Oracle

Initialiseringsafsnit af pakken

Pakkeinitieringsafsnittet, som navnet antyder, udføres, når pakken initialiseres. Dette sker, når den første procedure/funktion fra pakken udføres efter session er etableret eller efter pakken er (gen)kompileret. Formålet er at initialisere den globale tilstand af pakken, der kan bruges i løbet af sessionens levetid. Alle globale pakkevariabler bevares, og du kan få adgang til dem senere.

Eksempel:

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

Du kan se, at efter pakken er kompileret, udføres initialiseringssektionen, når proceduren foo er henrettet. Pakken er initialiseret nu. Enhver efterfølgende udførelse af foo udfører kun proceduren.




  1. Indeks på tidsstempel:Funktioner i indeksudtryk skal være markeret som IMUTABLE

  2. Sammenligning af MySQL og Java Time

  3. MySQL Workbench viser ikke forespørgselsresultater

  4. PL/SQL - udføres med det samme i pipelinet funktion