No banco de dados Oracle, o
JSON_ARRAY()
A função cria uma matriz JSON a partir de uma sequência de expressões escalares SQL ou uma instância de tipo de coleção, VARRAY
ou NESTED TABLE
. Sintaxe
A sintaxe fica assim:
JSON_ARRAY
( expr [ FORMAT JSON ] [, expr [ FORMAT JSON ] ]...
[ JSON_on_null_clause ] [ JSON_returning_clause ]
[ STRICT ] )
Onde:
expr
é qualquer expressão SQL avaliada como um objeto JSON, uma matriz JSON, um literal numérico, um literal de texto, data, carimbo de data/hora ounull
.FORMAT JSON
indica que a string de entrada é JSON e, portanto, não será citada na saída.JSON_on_null_clause
especifica o comportamento a ser usado quandoexpr
contém um valor nulo (ou seja, inclua valores nulos na saída ou não).JSON_returning_clause
especifica o tipo de valor de retorno.STRICT
verifica se a saída da função de geração JSON é o JSON correto. Se a verificação falhar, um erro de sintaxe será gerado.
Exemplo
Veja um exemplo para demonstrar como funciona:
SELECT JSON_ARRAY(1, 2, 3) FROM DUAL;
Resultado:
[1,2,3]
Aninhado
Você também pode aninhar
JSON_ARRAY()
funções dentro de outro JSON_ARRAY()
função:SELECT JSON_ARRAY(
JSON_ARRAY(1, 2, 3),
JSON_ARRAY(4, 5, 6)
)
FROM DUAL;
Resultado:
[[1,2,3],[4,5,6]]
O FORMAT JSON
Cláusula
Você pode usar o
FORMAT JSON
cláusula para indicar que a string de entrada é JSON e, portanto, não deve ser citada na saída. Segue um exemplo para demonstrar:
SELECT
JSON_ARRAY('{"a":1}') AS r1,
JSON_ARRAY('{"a":1}' FORMAT JSON) AS r2
FROM DUAL;
Resultado:
R1 R2 ________________ ____________ ["{\"a\":1}"] [{"a":1}]
Valores nulos
Você pode especificar se os valores nulos são incluídos na matriz resultante.
Para incluí-los, use
NULL ON NULL
:SELECT
JSON_ARRAY(1, null, 3 NULL ON NULL)
FROM DUAL;
Resultado:
[1,null,3]
Para excluí-los, use
ABSENT ON NULL
:SELECT
JSON_ARRAY(1, null, 3 ABSENT ON NULL)
FROM DUAL;
Resultado:
[1,3]
ABSENT ON NULL
é o padrão. Consulte a documentação da Oracle para obter uma explicação mais detalhada desta função.