- Categorias:
Funções de dados semiestruturados e estruturados (Predicados de tipo)
TYPEOF¶
Relata o tipo de um valor armazenado em uma coluna de VARIANT. O tipo é retornado como cadeia de caracteres.
- Consulte também:
Sintaxe¶
TYPEOF( <expr> )
Argumentos¶
expr
O argumento pode ser um nome de coluna ou uma expressão geral.
Retornos¶
Retorna um VARCHAR que contém o tipo de dados da expressão de entrada, por exemplo, BOOLEAN
, DECIMAL
, ARRAY
, OBJECT
etc.
Notas de uso¶
A cadeia de caracteres retornada pode ser
DECIMAL
mesmo que a entrada seja um número inteiro exato, devido a otimizações que alteram o tipo de armazenamento físico da entrada.
Esta função não oferece suporte a um tipo estruturado como argumento de entrada.
Exemplos¶
Criar uma tabela que contenha diferentes tipos de dados armazenados dentro de uma coluna VARIANT, depois usar TYPEOF
para determinar os tipos de dados de cada parte de dado.
Criar e preencher uma tabela. Observe que a instrução
INSERT
usa a funçãoPARSE_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;Consultar os dados:
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 | | | | } | | +---+------------------------+------------+