sql >> Database >  >> RDS >> Oracle

Initialisatiegedeelte van het pakket

De sectie voor pakketinitialisatie, zoals de naam doet vermoeden, wordt uitgevoerd wanneer het pakket wordt geïnitialiseerd. Dit gebeurt wanneer de eerste procedure/functie van het pakket wordt uitgevoerd nadat de sessie tot stand is gebracht of nadat het pakket is (opnieuw) gecompileerd. Het doel is om de globale status van het pakket te initialiseren dat kan worden gebruikt tijdens de levensduur van de sessie. Alle globale pakketvariabelen worden bewaard en u kunt ze later openen.

Voorbeeld:

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

U ziet dat nadat het pakket is gecompileerd de initialisatiesectie wordt uitgevoerd wanneer procedure foo is geëxecuteerd. Het pakket is nu geïnitialiseerd. Elke volgende uitvoering van foo voert alleen de procedure uit.




  1. Fout gerelateerd aan only_full_group_by bij het uitvoeren van een query in MySql

  2. Zip-bestand naar bytes Python 3

  3. Hoe te bekijken welke Postgres-versie actief is

  4. Hoe voorloopnullen van dag- en maandwaarden in Oracle te verwijderen, bij het parseren naar string met de functie to_char?