I Oracle Database er JSON_ARRAY()
funktion opretter et JSON-array ud fra en sekvens af SQL-skalære udtryk eller en samlingstypeforekomst, VARRAY
eller NESTED TABLE
.
Syntaks
Syntaksen ser sådan ud:
JSON_ARRAY
( expr [ FORMAT JSON ] [, expr [ FORMAT JSON ] ]...
[ JSON_on_null_clause ] [ JSON_returning_clause ]
[ STRICT ] )
Hvor:
expr
er ethvert SQL-udtryk, der evalueres til et JSON-objekt, et JSON-array, en numerisk literal, en tekstliteral, dato, tidsstempel ellernull
.FORMAT JSON
angiver, at inputstrengen er JSON, og vil derfor ikke blive citeret i outputtet.JSON_on_null_clause
angiver den adfærd, der skal bruges, nårexpr
indeholder en null-værdi (dvs. inkludere enten null-værdier i output eller ikke).JSON_returning_clause
angiver typen af returværdi.STRICT
kontrollerer, om outputtet fra JSON-genereringsfunktionen er korrekt JSON. Hvis kontrollen mislykkes, opstår der en syntaksfejl.
Eksempel
Her er et eksempel for at demonstrere, hvordan det virker:
SELECT JSON_ARRAY(1, 2, 3) FROM DUAL;
Resultat:
[1,2,3]
Indlejret
Du kan også indlejre JSON_ARRAY()
fungerer i en anden JSON_ARRAY()
funktion:
SELECT JSON_ARRAY(
JSON_ARRAY(1, 2, 3),
JSON_ARRAY(4, 5, 6)
)
FROM DUAL;
Resultat:
[[1,2,3],[4,5,6]]
FORMAT JSON
Klausul
Du kan bruge FORMAT JSON
klausul for at angive, at input-strengen er JSON, og bør derfor ikke citeres i outputtet.
Her er et eksempel til demonstration:
SELECT
JSON_ARRAY('{"a":1}') AS r1,
JSON_ARRAY('{"a":1}' FORMAT JSON) AS r2
FROM DUAL;
Resultat:
R1 R2 ________________ ____________ ["{\"a\":1}"] [{"a":1}]
Nul-værdier
Du kan angive, om null-værdier skal inkluderes i det resulterende array.
For at inkludere dem, brug NULL ON NULL
:
SELECT
JSON_ARRAY(1, null, 3 NULL ON NULL)
FROM DUAL;
Resultat:
[1,null,3]
For at udelukke dem, brug ABSENT ON NULL
:
SELECT
JSON_ARRAY(1, null, 3 ABSENT ON NULL)
FROM DUAL;
Resultat:
[1,3]
ABSENT ON NULL
er standard.
Se Oracles dokumentation for en mere detaljeret forklaring af denne funktion.