FirebirdSQL logo
 Instructions de procédure SQL (PSQL)Fonctions agrégées 

Fonctions pour traiter les variables contextuelles

RDB$GET_CONTEXT()

Disponible en

DSQL, PSQL

Syntaxe
RDB$GET_CONTEXT('<namespace>', 'varname')

<namespace> ::= SYSTEM | DDL_TRIGGER | USER_SESSION | USER_TRANSACTION
Table 1. paramètres de fonction RDB$GET_CONTEXT
Paramètre Description

namespace

Namespace.

varname

Le nom de la variable.Sensible à la casse.La longueur maximale est de 80 octets.

Le type de résultat renvoyé :

VARCHAR(255) CHARACTER SET NONE

La fonction RDB$GET_CONTEXT renvoie la valeur d’une variable contextuelle de l’un des espaces de noms.

Les espaces de noms suivants existent actuellement :

  • SYSTEM — fournit un accès aux variables du contexte système. Ces variables sont en lecture seule ;

  • USER_SESSION — fournit un accès aux variables de contexte utilisateur définies via la fonction RDB$SET_CONTEXT. Les variables existent pour la durée de la connexion ;

  • USER_TRANSACTION — Fournit un accès aux variables de contexte utilisateur définies via la fonction RDB$SET_CONTEXT. Les variables existent pendant la transaction ;

  • DL_TRIGGER — fournit un accès aux variables de contexte du système disponibles uniquement pendant l’exécution du trigger DDL. Ces variables sont en lecture seule.

Les espaces de noms USER_SESSION et USER_TRANSACTION sont initialement vides et l’utilisateur crée les variables et les remplit avec la fonction RDB$SET_CONTEXT.

Note

Pour éviter les attaques DoS, il y a une limite de 1000 variables dans un "espace de noms".

Si la variable demandée par la fonction existe dans l’espace de noms, elle est retournée sous la forme d’une chaîne VARCHAR(255) CHARACTER SET NONE. Si une variable inexistante dans l’espace de noms SYSTEM est référencée, il y a une erreur si cela se produit dans les espaces de noms USER_SESSION ou USER_TRANSACTION - la fonction retourne NULL.