Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Sekcja inicjowania pakietu

Sekcja inicjalizacji pakietu, jak sugeruje nazwa, jest wykonywana podczas inicjalizacji pakietu. Dzieje się tak, gdy pierwsza procedura/funkcja z pakietu jest wykonywana po ustanowieniu sesji lub po (re)kompilacji pakietu. Celem jest zainicjowanie globalnego stanu pakietu, który może być używany podczas trwania sesji. Wszystkie globalne zmienne pakietu są zachowywane i możesz uzyskać do nich dostęp później.

Przykład:

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

Widzisz, że po skompilowaniu pakietu sekcja inicjująca jest wykonywana, gdy procedura foo jest wykonywany. Pakiet jest teraz inicjowany. Każde kolejne wykonanie foo wykonuje tylko procedurę.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. oracle Wybierz daty dla przedmiotów sprzedanych w odstępie 1 minuty od siebie

  2. Grupuj SQL według daty (godziny)

  3. Oracle w C#, wiązanie zmiennych i zapytania takie jak ID IN (1, 2, 3)

  4. Jak wykonać procedurę składowaną Oracle?

  5. Nie można uruchomić dużego dynamicznego zapytania wybierającego w procedurze składowanej