sql >> Databasteknik >  >> RDS >> Oracle

Initialiseringsavsnitt av paketet

Paketinitieringssektionen som namnet antyder exekveras när paketet initieras. Detta händer när den första proceduren/funktionen från paketet exekveras efter att sessionen har upprättats eller efter att paketet har (åter)kompilerats. Syftet är att initiera det globala tillståndet för paketet som kan användas under sessionens livstid. Alla globala paketvariabler behålls och du kan komma åt dem senare.

Exempel:

[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 ser att efter att paketet har kompilerats exekveras initialiseringssektionen när proceduren foo avrättas. Paketet är initierat nu. Varje efterföljande körning av foo exekverar endast proceduren.




  1. Ställ in teckenuppsättningen och sorteringen av en databas i MariaDB

  2. Ruby - Undantag inträffade:[Mysql2::Error] stängde MySQL-anslutningen

  3. ningx, uwsgi, python permanent mysql-fel efter en tid från start av programmet

  4. räkna null-poster i databaskolumnen på ett RESTfull sätt