Exemples
NEW.USER_ADR = RDB$GET_CONTEXT ('SYSTEM', 'CLIENT_ADDRESS');
Fonctions pour traiter les variables contextuelles
Fonctions pour travailler avec des chaînes de caractères
Fonctions pour travailler avec la date et l'heure
Fonctions permettant de travailler avec le type BLOB
Fonctions permettant de travailler avec le type DECFLOAT
Fonctions de conversion de type
Fonctions d'opérations binaires
Fonctions pour traiter les UUID
NEW.USER_ADR = RDB$GET_CONTEXT ('SYSTEM', 'CLIENT_ADDRESS');
RDB$SET_CONTEXT()
DSQL, PSQL
RDB$SET_CONTEXT('<namespace>', 'varname', {<value> | NULL}) <namespace> ::= USER_SESSION | USER_TRANSACTION
Paramètre | Description |
---|---|
namespace |
Namespace. |
varname |
Nom de la variable, sensible à la casse. Longueur maximale de 80 octets. |
value |
Données de tout type, à condition qu’elles puissent être converties en CHARACTER SET NONE de type VARCHAR(255). |
INTEGER
La fonction RDB$SET_CONTEXT
crée, définit ou efface une variable dans l’un des espaces de noms utilisés par l’utilisateur : USER_SESSION
ou USER_TRANSACTION
.
La fonction renvoie 1 si la variable existait déjà avant l’appel et 0 si ce n’est pas le cas. Pour supprimer une variable, mettez-la à NULL
. Si l’espace de noms donné n’existe pas, la fonction renverra une erreur. L’espace de noms et le nom de la variable sont sensibles à la casse, doivent être des chaînes de caractères non vides, et entourées de guillemets.
Note
|
|
RDB$SET_CONTEXT
SELECT RDB$SET_CONTEXT ('USER_SESSION', 'DEBUGL', 3)
FROM RDB$DATABASE;
-- la syntaxe suivante est disponible dans PSQL
RDB$SET_CONTEXT('USER_SESSION', 'RECORDSFOUND', RECCOUNTER);
SELECT RDB$SET_CONTEXT ('USER_TRANSACTION', 'SAVEPOINTS', 'YES')
FROM RDB$DATABASE;
SET TERM ^;
CREATE PROCEDURE set_context(User_ID VARCHAR(40),
Trn_ID INT) AS
BEGIN
RDB$SET_CONTEXT('USER_TRANSACTION', 'Trn_ID', Trn_ID);
RDB$SET_CONTEXT('USER_TRANSACTION', 'User_ID', User_ID);
END^
SET TERM ;^
CREATE TABLE journal (
jrn_id INTEGER NOT NULL PRIMARY KEY,
jrn_lastuser VARCHAR(40),
jrn_lastaddr VARCHAR(255),
jrn_lasttran INTEGER
);
SET TERM ^;
CREATE TRIGGER UI_JOURNAL
FOR JOURNAL BEFORE INSERT OR UPDATE
AS
BEGIN
new.jrn_lastuser = RDB$GET_CONTEXT('USER_TRANSACTION',
'User_ID');
new.jrn_lastaddr = RDB$GET_CONTEXT('SYSTEM',
'CLIENT_ADDRESS');
new.jrn_lasttran = RDB$GET_CONTEXT('USER_TRANSACTION',
'Trn_ID');
END^
SET TERM ;^
EXECUTE PROCEDURE set_context('skidder', 1);
INSERT INTO journal(jrn_id) VALUES(0);
COMMIT;
CHAR_TO_UUID()
DSQL, PSQL
CHAR_TO_UUID (ascii_uuid)
Paramètre | Description |
---|---|
ascii_uuid |
Représentation de l’UUID en 36 caractères : “ |
BINARY(16)
La fonction CHAR_TO_UUID
convertit un UUID lisible de 36 caractères en la valeur UUID correspondante de 16 octets.