FirebirdSQL logo
 PACKAGEFILTER 

Wer kann einen Paketkörper erstellen

Die Anweisung CREATE PACKAGE BODY kann ausgeführt werden durch:

  • Administratoren

  • Der Besitzer des Pakets

  • Benutzer mit der Berechtigung ALTER ANY PACKAGE

Beispiel für CREATE PACKAGE BODY

Erstellen des Paketkörpers
CREATE PACKAGE BODY APP_VAR
AS
BEGIN
  - Gibt das Startdatum der Periode zurück
  FUNCTION GET_DATEBEGIN() RETURNS DATE DETERMINISTIC
  AS
  BEGIN
    RETURN RDB$GET_CONTEXT('USER_SESSION', 'DATEBEGIN');
  END
  - Gibt das Enddatum des Zeitraums zurück
  FUNCTION GET_DATEEND() RETURNS DATE DETERMINISTIC
  AS
  BEGIN
    RETURN RDB$GET_CONTEXT('USER_SESSION', 'DATEEND');
  END
  - Legt den Datumsbereich des Arbeitszeitraums fest
  PROCEDURE SET_DATERANGE(ADATEBEGIN DATE, ADATEEND DATE)
  AS
  BEGIN
    RDB$SET_CONTEXT('USER_SESSION', 'DATEBEGIN', ADATEBEGIN);
    RDB$SET_CONTEXT('USER_SESSION', 'DATEEND', ADATEEND);
  END
END

docnext count = 8

ALTER PACKAGE BODY

Verwendet für

Ändern des Paketrumpfes

Verfügbar in

DSQL

Syntax
ALTER PACKAGE BODY name
AS
BEGIN
  [ <package_item> ... ]
  [ <package_body_item> ... ]
END

!! Siehe auch Syntax CREATE PACKAGE BODY für weitere Regeln !!

Die Anweisung ALTER PACKAGE BODY modifiziert den Paketrumpf.Es kann verwendet werden, um die Definition und Implementierung von Prozeduren und Funktionen des Paketkörpers zu ändern.

Siehe [fblangref40-ddl-pkg-body-create-de] für weitere Details.

Wer kann einen Paketkörper ändern?

Die Anweisung ALTER PACKAGE BODY kann ausgeführt werden durch:

  • Administratoren

  • Der Besitzer des Pakets

  • Benutzer mit der Berechtigung ALTER ANY PACKAGE

Beispiel für ALTER PACKAGE BODY

Ändern des Paketkörpers
ALTER PACKAGE BODY APP_VAR
AS
BEGIN
  - Gibt das Startdatum der Periode zurück
  FUNCTION GET_DATEBEGIN() RETURNS DATE DETERMINISTIC
  AS
  BEGIN
    RETURN RDB$GET_CONTEXT('USER_SESSION', 'DATEBEGIN');
  END
  - Gibt das Enddatum des Zeitraums zurück
  FUNCTION GET_DATEEND() RETURNS DATE DETERMINISTIC
  AS
  BEGIN
    RETURN RDB$GET_CONTEXT('USER_SESSION', 'DATEEND');
  END
  - Legt den Datumsbereich des Arbeitszeitraums fest
  PROCEDURE SET_DATERANGE(ADATEBEGIN DATE, ADATEEND DATE)
  AS
  BEGIN
    RDB$SET_CONTEXT('USER_SESSION', 'DATEBEGIN', ADATEBEGIN);
    RDB$SET_CONTEXT('USER_SESSION', 'DATEEND', ADATEEND);
  END
END

DROP PACKAGE BODY

Verwendet für

Löschen des Paketrumpfes

Verfügbar in

DSQL

Syntax
DROP PACKAGE package_name
Table 1. DROP PACKAGE BODY-Anweisungsparameter
Parameter Beschreibung

package_name

Paketname

Die Anweisung DROP PACKAGE BODY löscht den Paketkörper.

Wer kann einen Paketkörper fallen lassen?

Die DROP PACKAGE BODY-Anweisung kann ausgeführt werden durch:

  • Administratoren

  • Der Besitzer des Pakets

  • Benutzer mit der Berechtigung ALTER ANY PACKAGE

Beispiel für DROP PACKAGE BODY

Löschen des Paketrumpfes
DROP PACKAGE BODY APP_VAR;

RECREATE PACKAGE BODY

Verwendet für

Erstellen eines neuen oder erneuten Erstellens eines vorhandenen Paketrumpfes

Verfügbar in

DSQL

Syntax
RECREATE PACKAGE BODY name
AS
BEGIN
  [ <package_item> ... ]
  [ <package_body_item> ... ]
END

!! Siehe auch Syntax CREATE PACKAGE BODY für weitere Regeln !!

Die Anweisung RECREATE PACKAGE BODY erstellt einen neuen oder erstellt einen bestehenden Paketkörper neu.Wenn bereits ein Paketkörper mit demselben Namen vorhanden ist, versucht die Anweisung, ihn zu löschen und dann einen neuen Paketkörper zu erstellen.Nach der Neuerstellung des Paketkörpers bleiben die Berechtigungen des Pakets und seiner Routinen erhalten.

Siehe [fblangref40-ddl-pkg-body-create-de] für weitere Details.

Beispiele für RECREATE PACKAGE BODY

Neuerstellen des Paketrumpfes
RECREATE PACKAGE BODY APP_VAR
AS
BEGIN
  - Gibt das Startdatum der Periode zurück
  FUNCTION GET_DATEBEGIN() RETURNS DATE DETERMINISTIC
  AS
  BEGIN
    RETURN RDB$GET_CONTEXT('USER_SESSION', 'DATEBEGIN');
  END
  - Gibt das Enddatum des Zeitraums zurück
  FUNCTION GET_DATEEND() RETURNS DATE DETERMINISTIC
  AS
  BEGIN
    RETURN RDB$GET_CONTEXT('USER_SESSION', 'DATEEND');
  END
  - Legt den Datumsbereich des Arbeitszeitraums fest
  PROCEDURE SET_DATERANGE(ADATEBEGIN DATE, ADATEEND DATE)
  AS
  BEGIN
    RDB$SET_CONTEXT('USER_SESSION', 'DATEBEGIN', ADATEBEGIN);
    RDB$SET_CONTEXT('USER_SESSION', 'DATEEND', ADATEEND);
  END
END