In Oracle Database, il JSON_ARRAY() La funzione crea un array JSON da una sequenza di espressioni scalari SQL o da un'istanza del tipo di raccolta, VARRAY o NESTED TABLE .
Sintassi
La sintassi è questa:
JSON_ARRAY
( expr [ FORMAT JSON ] [, expr [ FORMAT JSON ] ]...
[ JSON_on_null_clause ] [ JSON_returning_clause ]
[ STRICT ] ) Dove:
exprè qualsiasi espressione SQL che restituisce un oggetto JSON, un array JSON, un valore letterale numerico, un valore letterale di testo, una data, un timestamp onull.FORMAT JSONindica che la stringa di input è JSON e quindi non sarà tra virgolette nell'output.JSON_on_null_clausespecifica il comportamento da utilizzare quandoexprcontiene un valore nullo (ovvero includere o meno valori null nell'output).JSON_returning_clausespecifica il tipo di valore restituito.STRICTcontrolla se l'output della funzione di generazione JSON è JSON corretto o meno. Se il controllo fallisce, viene generato un errore di sintassi.
Esempio
Ecco un esempio per dimostrare come funziona:
SELECT JSON_ARRAY(1, 2, 3) FROM DUAL; Risultato:
[1,2,3]
Nidificato
Puoi anche nidificare JSON_ARRAY() funzioni all'interno di un altro JSON_ARRAY() funzione:
SELECT JSON_ARRAY(
JSON_ARRAY(1, 2, 3),
JSON_ARRAY(4, 5, 6)
)
FROM DUAL; Risultato:
[[1,2,3],[4,5,6]]
Il FORMAT JSON Clausola
Puoi usare il FORMAT JSON clausola per indicare che la stringa di input è JSON e pertanto non deve essere tra virgolette nell'output.
Ecco un esempio da dimostrare:
SELECT
JSON_ARRAY('{"a":1}') AS r1,
JSON_ARRAY('{"a":1}' FORMAT JSON) AS r2
FROM DUAL; Risultato:
R1 R2
________________ ____________
["{\"a\":1}"] [{"a":1}] Valori Nulli
È possibile specificare se i valori null devono essere inclusi o meno nell'array risultante.
Per includerli, usa NULL ON NULL :
SELECT
JSON_ARRAY(1, null, 3 NULL ON NULL)
FROM DUAL; Risultato:
[1,null,3]
Per escluderli, usa ABSENT ON NULL :
SELECT
JSON_ARRAY(1, null, 3 ABSENT ON NULL)
FROM DUAL; Risultato:
[1,3]
ABSENT ON NULL è l'impostazione predefinita.
Consulta la documentazione di Oracle per una spiegazione più dettagliata di questa funzione.