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 JSONindikerar att indatasträngen är JSON och kommer därför inte att citeras i utdata.JSON_on_null_clauseanger beteendet som ska användas närexprinnehåller ett nollvärde (dvs. inkluderar antingen nollvärden i utdata eller inte).JSON_returning_clauseanger typen av returvärde.STRICTkontrollerar 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.