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 JSONindica que a string de entrada é JSON e, portanto, não será citada na saída.JSON_on_null_clauseespecifica o comportamento a ser usado quandoexprcontém um valor nulo (ou seja, inclua valores nulos na saída ou não).JSON_returning_clauseespecifica o tipo de valor de retorno.STRICTverifica 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.