USER
DSQL, PSQL
USER
VARCHAR(63)
La variable USER
contient le nom de l’utilisateur de la base de données actuellement connecté.
USER
NEW.ADDED_BY = USER;
USER
DSQL, PSQL
USER
VARCHAR(63)
La variable USER
contient le nom de l’utilisateur de la base de données actuellement connecté.
USER
NEW.ADDED_BY = USER;
CURRENT_ROLE
DSQL, PSQL
CURRENT_ROLE
VARCHAR(63)
Une variable de contexte CURRENT_ROLE
contenant le nom du rôle qui a été spécifié lors de la connexion à la base de données, ou le rôle défini avec l’opérateur SET ROLE
.Dans le cas où une connexion s’est produite sans spécifier de rôle, et que le rôle n’a pas été spécifié plus tard en utilisant l’opérateur SET ROLE
, la variable prend la valeur NONE
.
CURRENT_ROLE
représente toujours un rôle valide ou NONE
. Si un utilisateur se connecte avec un rôle inexistant,le noyau le réinitialise silencieusement à NONE
sans retourner d’erreur.
Note
|
La variable de contexte |
CURRENT_ROLE
SELECT CURRENT_ROLE FROM RDB$DATABASE
Note
|
La même valeur sera également disponible en tant que résultat de la requête :
|
CURRENT_TIME
DSQL, PSQL, ESQL
CURRENT_TIME [(<precision>)] <precision> ::= 0 | 1 | 2 | 3
Paramètre | Description |
---|---|
precision |
Précision. La valeur par défaut est 0. Non supporté dans ESQL. |
TIME WITH TIME ZONE
La variable CURRENT_TIME
renvoie l’heure actuelle dans le fuseau horaire de la session, y compris les informations sur le fuseau horaire. La précision détermine le nombre de décimales à considérer dans les fractions de seconde. La précision par défaut est 0.
Note
|
Dans un bloc de code PSQL (procédure, trigger, bloc exécutable), la valeur de |
CURRENT_TIME
SELECT CURRENT_TIME(2) FROM RDB$DATABASE;
-- le résultat sera (par exemple) 23:35:33.1200 Europe/Moscow
CURRENT_TIMESTAMP
DSQL, PSQL, ESQL
CURRENT_TIMESTAMP [(<precision>)] <precision> ::= 0 | 1 | 2 | 3
Paramètre | Description |
---|---|
precision |
Précision. La valeur par défaut est 3. Non supporté dans ESQL. |
TIMESTAMP WITH TIME ZONE
La variable CURRENT_TIMESTAMP
renvoie la date et l’heure actuelles dans le fuseau horaire de la session, y compris les informations sur le fuseau horaire. La précision détermine le nombre de décimales en fractions de seconde à prendre en compte. La précision par défaut est de 3.
Note
|
Dans un bloc de code PSQL (procédure, trigger, bloc exécutable), la valeur de |
CURRENT_TIMESTAMP
SELECT CURRENT_TIMESTAMP(2) FROM RDB$DATABASE;
-- le résultat sera (par exemple) 02.03.2014 23:35:33.1200 Europe/Moscow
CURRENT_TRANSACTION
DSQL, PSQL
CURRENT_TRANSACTION
BIGINT
La variable CURRENT_TRANSACTION
contient un numéro unique pour la transaction en cours.
La valeur de CURRENT_TRANSACTION
est ``stockée dans la page d’en-tête de la base de données et remise à 0 lorsque la base est restaurée (ou créée). Il est incrémenté lorsqu’une nouvelle transaction est lancée.
CURRENT_TRANSACTION
SELECT CURRENT_TRANSACTION FROM RDB$DATABASE;
NEW.TRANS_ID = CURRENT_TRANSACTION;
[fblangref-contextvars-current-connection], RDB$GET_CONTEXT()
.
CURRENT_USER
DSQL, PSQL
CURRENT_USER
VARCHAR(63)
La variable CURRENT_USER
contient le nom de l’utilisateur de la base de données actuellement connecté.
CURRENT_USER
NEW.ADDED_BY = CURRENT_USER;
[fblangref-contextvars-user], [fblangref-contextvars-current-role].
DELETING
PSQL
DELETING
BOOLEAN
La variable contextuelle DELETING
est uniquement disponible dans le code des triggers de table. Elle est utilisée dans les triggers pour plusieurs types d’événements et indique que le trigger a été déclenché lorsque l’opération DELETE
est exécutée.
DELETING
...
IF (DELETING) THEN
BEGIN
INSERT INTO REMOVED_CARS (
ID, MAKE, MODEL, REMOVED)
VALUES (
OLD.ID, OLD.MAKE, OLD.MODEL, CURRENT_TIMESTAMP);
END
...
GDSCODE
PSQL
GDSCODE
INTEGER
Dans le bloc de gestion des erreurs WHEN … DO
la variable contextuelle GDSCODE
contient une représentation numérique du code d’erreur actuel de Firebird.Avant Firebird 2.0, GDSCODE
ne pouvait être récupéré qu’en utilisant la construction WHEN GDSCODE
.Maintenant, cette variable contextuelle peut aussi être utilisée dans les blocs WHEN ANY
, WHEN SQLCODE
et WHEN EXCEPTION
, tant que le code d’erreur correspond au code d’erreur de Firebird.En dehors du gestionnaire d’erreur, GDSCODE
est toujours 0.En dehors de PSQL, GDSCODE
n’existe pas du tout.
GDSCODE
...
WHEN GDSCODE GRANT_OBJ_NOTFOUND,
GDSCODE GRANT_FLD_NOTFOUND,
GDSCODE GRANT_NOPRIV,
GDSCODE GRANT_NOPRIV_ON_BASE
DO
BEGIN
EXECUTE PROCEDURE LOG_GRANT_ERROR(GDSCODE);
EXIT;
END
...
Note
|
Attention : après, |
[fblangref-contextvars-sqlcode], [fblangref-contextvars-sqlstate].