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ètreDescription

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.