RDB$GET_CONTEXT()
DSQL, PSQL
RDB$GET_CONTEXT('<namespace>', 'varname') <namespace> ::= SYSTEM | DDL_TRIGGER | USER_SESSION | USER_TRANSACTION
Paramètre | Description |
---|---|
namespace |
Namespace. |
varname |
Le nom de la variable.Sensible à la casse.La longueur maximale est de 80 octets. |
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.