FirebirdSQL logo

SET TIME ZONE

Destination

Changer le fuseau horaire d’une session.

Syntaxe
SET TIME ZONE { <time-zone-string> | LOCAL }

<time-zone-string> ::=
    '<time-zone>'

<time-zone> ::=
    <time-zone-region>
  | [+/-] <hour-displacement> [: <minute-displacement>]

Change immédiatement le fuseau horaire de la session (la connexion actuelle).

Si vous spécifiez LOCAL, vous reviendrez au fuseau horaire initial de la session (soit celui par défaut, soit celui spécifié dans la propriété de connexion isc_dpb_session_time_zone).

Vous pouvez obtenir le fuseau horaire actuel de la session en utilisant la fonction RDB$GET_CONTEXT avec les arguments 'SYSTEM' pour l’espace de noms et 'SESSION_TIMEZONE' comme nom de variable.

Note

L’exécution de ALTER SESSION RESET a le même effet sur le fuseau horaire de la session que SET TIME ZONE LOCAL, mais réinitialise également d’autres propriétés de la session.

Example 1. Changer le fuseau horaire d’une session
set time zone '-02:00';
select rdb$get_context('SYSTEM', 'SESSION_TIMEZONE') from rdb$database;
-- returns -02:00

set time zone 'America/Sao_Paulo';
select rdb$get_context('SYSTEM', 'SESSION_TIMEZONE') from rdb$database;
-- returns America/Sao_Paulo

set time zone local;

Réinitialisation de l’état de la session

ALTER SESSION RESET

Destination

Réinitialisation de l’environnement de la session.

Disponible en

DSQL

Syntaxe
ALTER SESSION RESET

Réinitialise l’environnement de session (connexions) à l’état initial.Cette fonctionnalité est utile si la session est réutilisée au lieu de se déconnecter/connecter.

Cette déclaration fait ce qui suit :

  • une erreur (isc_ses_reset_err) est générée s’il existe une transaction ouverte dans la connexion courante autre que la transaction courante et les transactions 2PC préparées qui sont autorisées et ignorées par cette vérification ;

  • La variable système RESETTING est définie à TRUE ;

  • Les déclencheurs de base de données pour l’événement ON DISCONNECT sont lancés s’ils sont présents et autorisés pour la connexion actuelle ;

  • La transaction de l’utilisateur en cours est annulée (ROLLBACK) si elle est présente. Un avertissement sera émis si des modifications ont été apportées à la transaction actuellement active ;

  • Remet les paramètres DECFLOAT (BIND, TRAP et ROUND) aux valeurs par défaut ;

  • réinitialise les délais d’attente de la session et de l’opérateur à 0 ;

  • supprime toutes les variables de contexte de l’espace de nom USER_SESSION ;

  • Réinitialise le rôle à la valeur transmise au DPB (spécifiée lors de la connexion) et efface le cache des préférences (si le rôle a été modifié avec l’instruction SET ROLE) ;

  • Efface le contenu de toutes les tables globales de niveau connexion utilisées (GLOBAL TEMPORARY TABLE …​ ON COMMIT PRESERVE ROWS) ;

  • déclenche des déclencheurs de base de données sur l’événement ON CONNECT s’ils sont présents et autorisés pour la connexion actuelle ;

  • lance une nouvelle transaction avec les mêmes propriétés que la transaction annulée (si la transaction était présente avant la réinitialisation) ;

  • La variable système RESETTING a la valeur FALSE.

Traitement des erreurs

Une erreur survenant dans le déclencheur ON DISCONNECT interrompt la réinitialisation de la session et laisse l’état de la session inchangé.De telles erreurs sont signalées avec le code d’erreur principal isc_session_reset_err et le texte d’erreur“Canot reset user session”.

Les erreurs survenant après l’exécution des déclencheurs ON DISCONNECT interrompent l’instruction de réinitialisation de la session et la connexion elle-même.Ces erreurs étaient signalées avec le code d’erreur principal isc_session_reset_failed et le texte d’erreur“Reset of user session failed. Connection is shut down”.Les opérations de connexion ultérieures (sauf la déconnexion) se termineront par l’erreur isc_att_shutdown.

Gestion de l’optimiseur