I Oracle Database, JSON_ARRAY()
funktionen skapar en JSON-array från en sekvens av SQL-skalära uttryck eller en samlingstypsinstans, VARRAY
eller NESTED TABLE
.
Syntax
Syntaxen ser ut så här:
JSON_ARRAY
( expr [ FORMAT JSON ] [, expr [ FORMAT JSON ] ]...
[ JSON_on_null_clause ] [ JSON_returning_clause ]
[ STRICT ] )
Var:
expr
är vilket SQL-uttryck som helst som utvärderas till ett JSON-objekt, en JSON-matris, en numerisk literal, en text literal, datum, tidsstämpel ellernull
.FORMAT JSON
indikerar att indatasträngen är JSON och kommer därför inte att citeras i utdata.JSON_on_null_clause
anger beteendet som ska användas närexpr
innehåller ett nollvärde (dvs. inkluderar antingen nollvärden i utdata eller inte).JSON_returning_clause
anger typen av returvärde.STRICT
kontrollerar om utdata från JSON-genereringsfunktionen är korrekt JSON. Om kontrollen misslyckas uppstår ett syntaxfel.
Exempel
Här är ett exempel för att visa hur det fungerar:
SELECT JSON_ARRAY(1, 2, 3) FROM DUAL;
Resultat:
[1,2,3]
Inkapslade
Du kan också kapsla JSON_ARRAY()
fungerar inom en annan 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 använda FORMAT JSON
sats för att indikera att indatasträngen är JSON, och bör därför inte citeras i utdata.
Här är ett exempel att visa:
SELECT
JSON_ARRAY('{"a":1}') AS r1,
JSON_ARRAY('{"a":1}' FORMAT JSON) AS r2
FROM DUAL;
Resultat:
R1 R2 ________________ ____________ ["{\"a\":1}"] [{"a":1}]
Nullvärden
Du kan ange om null-värden ska inkluderas i den resulterande arrayen.
För att inkludera dem, använd NULL ON NULL
:
SELECT
JSON_ARRAY(1, null, 3 NULL ON NULL)
FROM DUAL;
Resultat:
[1,null,3]
För att utesluta dem, använd ABSENT ON NULL
:
SELECT
JSON_ARRAY(1, null, 3 ABSENT ON NULL)
FROM DUAL;
Resultat:
[1,3]
ABSENT ON NULL
är standard.
Se Oracles dokumentation för en mer detaljerad förklaring av denna funktion.