Categorias:

Funções de dados semiestruturados (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:

IS_<tipo_de_objeto> , SYSTEM$TYPEOF

Sintaxe

TYPEOF( <expr> )
Copy

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.

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ção 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

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              |            |
|   | }                      |            |
+---+------------------------+------------+
Copy