- Catégories :
Fonctions de données semi-structurées et 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 :
Syntaxe¶
TYPEOF( <expr> )
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.
Notes sur l’utilisation¶
La chaîne renvoyée peut être
DECIMAL
même si l’entrée est un entier exact, en raison d’optimisations qui modifient le type de stockage physique de l’entrée.
Cette fonction ne prend pas en charge un type structuré comme argument d’entrée.
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 fonctionPARSE_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;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 | | | | } | | +---+------------------------+------------+