Catégories :

Fonctions de données semi-structurées (prédicats de type)

TYPEOF

Indique le type d’une valeur stockée dans une colonne VARIANT. Le type est renvoyé sous forme de chaîne.

Voir aussi :

IS_<type_objet> , SYSTEM$TYPEOF

Syntaxe

TYPEOF( <expr> )
Copy

Arguments

expr

L’argument peut être un nom de colonne ou une expression générale.

Renvoie

Renvoie un VARCHAR qui contient le type de données de l’expression d’entrée, par exemple, BOOLEAN, DECIMAL, ARRAY, OBJECT, etc.

Exemples

Créez une table contenant différents types de données stockées dans une colonne VARIANT, puis utilisez TYPEOF pour déterminer les types de données de chaque élément de données.

Créez et remplissez une table. Notez que l’instruction INSERT utilise la fonction PARSE_JSON.

create or replace table vartab (n number(2), v variant);

insert into vartab
    select column1 as n, parse_json(column2) as v
    from values (1, 'null'), 
                (2, null), 
                (3, 'true'),
                (4, '-17'), 
                (5, '123.12'), 
                (6, '1.912e2'),
                (7, '"Om ara pa ca na dhih"  '), 
                (8, '[-1, 12, 289, 2188, false,]'), 
                (9, '{ "x" : "abc", "y" : false, "z": 10} ') 
       AS vals;
Copy

Interroger les données :

select n, v, typeof(v)
    from vartab
    order by n;
+---+------------------------+------------+
| N | V                      | TYPEOF(V)  |
|---+------------------------+------------|
| 1 | null                   | NULL_VALUE |
| 2 | NULL                   | NULL       |
| 3 | true                   | BOOLEAN    |
| 4 | -17                    | INTEGER    |
| 5 | 123.12                 | DECIMAL    |
| 6 | 1.912000000000000e+02  | DOUBLE     |
| 7 | "Om ara pa ca na dhih" | VARCHAR    |
| 8 | [                      | ARRAY      |
|   |   -1,                  |            |
|   |   12,                  |            |
|   |   289,                 |            |
|   |   2188,                |            |
|   |   false,               |            |
|   |   undefined            |            |
|   | ]                      |            |
| 9 | {                      | OBJECT     |
|   |   "x": "abc",          |            |
|   |   "y": false,          |            |
|   |   "z": 10              |            |
|   | }                      |            |
+---+------------------------+------------+
Copy