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:
expris een SQL-expressie die evalueert naar een JSON-object, een JSON-array, een numerieke letterlijke, een letterlijke tekst, datum, tijdstempel ofnull.FORMAT JSONgeeft aan dat de invoerreeks JSON is en daarom niet in de uitvoer wordt geciteerd.JSON_on_null_clausespecificeert het gedrag dat moet worden gebruikt wanneerexprbevat een null-waarde (d.w.z. neem null-waarden op in de uitvoer of niet).JSON_returning_clausespecificeert het type retourwaarde.STRICTcontroleert 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.