FirebirdSQL logo

Zeitzonenverwaltung

Anweisungen zur Verwaltung von Zeitzonenfunktionen der aktuellen Verbindungen.

SET TIME ZONE

Verwendet für

Ändern der Sitzungszeitzone

Verfügbar in

DSQL, PSQL

Syntax
SET TIME ZONE { time_zone_string | LOCAL }

Ändert die Sitzungszeitzone in die angegebene Zeitzone.Die Angabe von LOCAL wird auf die anfängliche Sitzungszeitzone der Sitzung zurückgesetzt (entweder die Standardeinstellung oder wie durch die Verbindungseigenschaft isc_dpb_session_time_zone angegeben).

Die Ausführung von [fblangref40-management-session-reset-alter-de] hat dieselbe Auswirkung auf die Sitzungszeitzone wie SET TIME ZONE LOCAL, setzt aber auch andere Sitzungseigenschaften zurück.

docnext count = 6

SET TIME ZONE-Beispiele

set time zone '-02:00';
set time zone 'America/Sao_Paulo';
set time zone local;

Sitzungsstatus zurücksetzen

ALTER SESSION RESET

Verwendet für

Sitzungsstatus auf die Anfangswerte zurücksetzen

Verfügbar in

DSQL, PSQL

Syntax
ALTER SESSION RESET

ALTER SESSION RESET setzt die aktuelle Benutzersitzung in ihren Anfangszustand zurück.Dies kann nützlich sein, um die Verbindung durch eine Clientanwendung (z. B. durch einen clientseitigen Verbindungspool) wiederzuverwenden.Wenn diese Anweisung ausgeführt wird, werden alle Benutzerkontextvariablen gelöscht, der Inhalt globaler temporärer Tabellen wird gelöscht und alle Einstellungen auf Sitzungsebene werden auf ihre Anfangswerte zurückgesetzt.

Es ist möglich, ALTER SESSION RESET ohne Transaktion auszuführen.

Die Ausführung von ALTER SESSION RESET führt die folgenden Schritte aus:

  • Der Fehler isc_ses_reset_err (335545206) wird ausgelöst, wenn eine andere Transaktion in der aktuellen Sitzung aktiv ist als die aktuelle Transaktion (diejenige, die ALTER SESSION RESET ausführt) und zweiphasige Transaktionen im vorbereiteten Zustand.

  • Systemvariable RESETTING wird auf TRUE gesetzt.

  • ON DISCONNECT Datenbank-Trigger werden ausgelöst, falls vorhanden und wenn Datenbank-Trigger für die aktuelle Verbindung nicht deaktiviert sind.

  • Die aktuelle Transaktion (diejenige, die ALTER SESSION RESET ausführt), falls vorhanden, wird zurückgesetzt.Eine Warnung wird gemeldet, wenn diese Transaktion Daten vor dem Zurücksetzen der Sitzung geändert hat.

  • Die Sitzungskonfiguration wird auf ihre Anfangswerte zurückgesetzt.Dies beinhaltet, ist aber nicht beschränkt auf:

    • DECFLOAT-Parameter (TRAP und ROUND) und Zurücksetzen auf die Anfangswerte, die mit dem DPB zur Verbindungszeit definiert wurden, oder ansonsten auf den Systemstandard.

    • Sitzungs- und Anweisungs-Timeouts werden auf Null zurückgesetzt.

    • Die aktuelle Rolle wird zum Verbindungszeitpunkt auf den Anfangswert zurückgesetzt, der mit DPB definiert wurde, und - wenn die Rolle geändert wird - wird der Cache der Sicherheitsklassen gelöscht.

    • Die Sitzungszeitzone wird auf den Anfangswert zurückgesetzt, der mit dem DPB zur Verbindungszeit definiert wurde, oder ansonsten auf den Systemstandard.

    • Die Bindungskonfiguration wird auf den Anfangswert zurückgesetzt, der mit dem DPB zur Verbindungszeit definiert wurde, oder ansonsten auf den Datenbank- oder Systemstandard.

    • Im Allgemeinen sollten Konfigurationswerte auf die Werte zurückgesetzt werden, die mit DPB zur Verbindungszeit konfiguriert wurden, oder ansonsten auf den Datenbank- oder Systemstandard.

  • Für den Namespace USER_SESSION definierte Kontextvariablen werden entfernt.

  • Globale temporäre Tabellen, die als ON COMMIT PRESERVE ROWS definiert sind, werden abgeschnitten (ihr Inhalt wird gelöscht).

  • ON CONNECT-Datenbank-Trigger werden ausgelöst, falls vorhanden und wenn Datenbank-Trigger für die aktuelle Verbindung nicht deaktiviert sind.

  • Eine neue Transaktion wird implizit mit denselben Parametern gestartet wie die Transaktion, die zurückgesetzt wurde (sofern eine Transaktion vorhanden war)

  • Die Systemvariable RESETTING wird auf FALSE gesetzt.

Note
  • Die Kontextvariablen CURRENT_USER und CURRENT_CONNECTION werden nicht verändert.

  • Da isql mehrere Transaktionen für eine einzelne Verbindung startet, kann ALTER SESSION RESET in isql nicht ausgeführt werden.

Fehlerbehandlung

Jeder Fehler, der durch ON DISCONNECT-Trigger ausgelöst wird, bricht das Zurücksetzen der Sitzung ab und lässt den Sitzungsstatus unverändert.Solche Fehler werden mit dem primären Fehlercode isc_session_reset_err (335545206) und dem Fehlertext "Cannot reset user session" gemeldet.

Jeder Fehler, der nach ON DISCONNECT-Triggern ausgelöst wird (einschließlich der durch ON CONNECT-Trigger ausgelösten), bricht sowohl das Zurücksetzen der Sitzung als auch die Verbindung selbst ab.Solche Fehler werden mit dem primären Fehlercode isc_ses_reset_failed (335545272) und dem Fehlertext "Reset of user session failed. Connection is shut down." gemeldet.Nachfolgende Operationen auf der Verbindung (außer Trennen) schlagen mit dem Fehler isc_att_shutdown (335544856) fehl.

Debugging

SET DEBUG OPTION

Verwendet für

Setting debug options

Verfügbar in

DSQL, PSQL

Eingeführt in

Firebird 4.0.1

Syntax
SET DEBUG OPTION option-name = value
Table 1. Unterstützte Optionen
Optionsname Datentyp Beschreibung

DSQL_KEEP_BLR

BOOLEAN

Speichert Statement BLR zum Abrufen mit isc_info_sql_exec_path_blr_bytes und isc_info_sql_exec_path_blr_text.
Hinzugefügt in Firebird 4.0.1.

SET DEBUG OPTION konfiguriert Debug-Informationen für die aktuelle Verbindung.

Warning

Debug-Optionen sind eng mit den Engine-Internals verbunden, und von ihrer Verwendung wird abgeraten, wenn Sie nicht genau verstehen, wie diese Internals von Version zu Version geändert werden können.