Catégories :

Fonctions contextuelles (Session)

GETVARIABLE

Renvoie la valeur associée à un nom de variable SQL.

Voir aussi :

Fonctions des variables de session

Syntaxe

GETVARIABLE( '<name>' )
Copy

Arguments

name

Nom de la variable SQL.

Vous devez spécifier le nom en majuscules, même si vous avez utilisé des minuscules lors de la définition de la variable.

Renvoie

Le type de données de la valeur renvoyée est VARCHAR.

Notes sur l’utilisation

Cette fonction utilise le cache de résultats de la session actuelle si vous appelez la fonction plus d’une fois dans la même session. Le cache de résultats s’applique partout où vous appelez cette fonction, y compris dans le corps des objets de la politique, comme une politique d’accès aux lignes.

Exemples

Cet exemple montre comment utiliser cette fonction et d’autres moyens d’obtenir la valeur de la variable :

SET MY_LOCAL_VARIABLE= 'my_local_variable_value';
+----------------------------------+
| status                           |
|----------------------------------|
| Statement executed successfully. |
+----------------------------------+
SELECT 
    GETVARIABLE('MY_LOCAL_VARIABLE'), 
    SESSION_CONTEXT('MY_LOCAL_VARIABLE'),
    $MY_LOCAL_VARIABLE;
+----------------------------------+--------------------------------------+-------------------------+
| GETVARIABLE('MY_LOCAL_VARIABLE') | SESSION_CONTEXT('MY_LOCAL_VARIABLE') | $MY_LOCAL_VARIABLE      |
|----------------------------------+--------------------------------------+-------------------------|
| my_local_variable_value          | my_local_variable_value              | my_local_variable_value |
+----------------------------------+--------------------------------------+-------------------------+
Copy

Lorsque des variables sont créées à l’aide de la commande SET, les noms des variables sont obligatoirement en majuscules. Les fonctions GETVARIABLE et SESSION_CONTEXT doivent transmettre la version en majuscules du nom de la fonction. La notation « $ » fonctionne avec des noms de variables en majuscules ou en minuscules.

SET var_2 = 'value_2';
+----------------------------------+
| status                           |
|----------------------------------|
| Statement executed successfully. |
+----------------------------------+
SELECT 
    GETVARIABLE('var_2'),
    GETVARIABLE('VAR_2'),
    SESSION_CONTEXT('var_2'),
    SESSION_CONTEXT('VAR_2'),
    $var_2,
    $VAR_2;
+----------------------+----------------------+--------------------------+--------------------------+---------+---------+
| GETVARIABLE('VAR_2') | GETVARIABLE('VAR_2') | SESSION_CONTEXT('VAR_2') | SESSION_CONTEXT('VAR_2') | $VAR_2  | $VAR_2  |
|----------------------+----------------------+--------------------------+--------------------------+---------+---------|
| NULL                 | value_2              | NULL                     | value_2                  | value_2 | value_2 |
+----------------------+----------------------+--------------------------+--------------------------+---------+---------+
Copy