In Oracle Database, de JSON_ARRAY()
functie maakt een JSON-array van een reeks SQL-scalar-expressies of één instantie van het verzamelingstype, VARRAY
of NESTED TABLE
.
Syntaxis
De syntaxis gaat als volgt:
JSON_ARRAY
( expr [ FORMAT JSON ] [, expr [ FORMAT JSON ] ]...
[ JSON_on_null_clause ] [ JSON_returning_clause ]
[ STRICT ] )
Waar:
expr
is een SQL-expressie die evalueert naar een JSON-object, een JSON-array, een numerieke letterlijke, een letterlijke tekst, datum, tijdstempel ofnull
.FORMAT JSON
geeft aan dat de invoerreeks JSON is en daarom niet in de uitvoer wordt geciteerd.JSON_on_null_clause
specificeert het gedrag dat moet worden gebruikt wanneerexpr
bevat een null-waarde (d.w.z. neem null-waarden op in de uitvoer of niet).JSON_returning_clause
specificeert het type retourwaarde.STRICT
controleert of de uitvoer van de JSON-generatiefunctie de juiste JSON is. Als de controle mislukt, wordt er een syntaxisfout gegenereerd.
Voorbeeld
Hier is een voorbeeld om te laten zien hoe het werkt:
SELECT JSON_ARRAY(1, 2, 3) FROM DUAL;
Resultaat:
[1,2,3]
Genest
Je kunt ook JSON_ARRAY()
. nesten functies binnen een andere JSON_ARRAY()
functie:
SELECT JSON_ARRAY(
JSON_ARRAY(1, 2, 3),
JSON_ARRAY(4, 5, 6)
)
FROM DUAL;
Resultaat:
[[1,2,3],[4,5,6]]
De FORMAT JSON
Clausule
U kunt de FORMAT JSON
. gebruiken om aan te geven dat de invoerreeks JSON is en daarom niet in de uitvoer moet worden aangehaald.
Hier is een voorbeeld om te demonstreren:
SELECT
JSON_ARRAY('{"a":1}') AS r1,
JSON_ARRAY('{"a":1}' FORMAT JSON) AS r2
FROM DUAL;
Resultaat:
R1 R2 ________________ ____________ ["{\"a\":1}"] [{"a":1}]
Null-waarden
U kunt specificeren of null-waarden al dan niet in de resulterende array moeten worden opgenomen.
Om ze op te nemen, gebruik NULL ON NULL
:
SELECT
JSON_ARRAY(1, null, 3 NULL ON NULL)
FROM DUAL;
Resultaat:
[1,null,3]
Om ze uit te sluiten, gebruik ABSENT ON NULL
:
SELECT
JSON_ARRAY(1, null, 3 ABSENT ON NULL)
FROM DUAL;
Resultaat:
[1,3]
ABSENT ON NULL
is de standaardinstelling.
Zie de documentatie van Oracle voor een meer gedetailleerde uitleg van deze functie.