In der Oracle-Datenbank das JSON_ARRAY() Funktion erstellt ein JSON-Array aus einer Folge von SQL-Skalarausdrücken oder einer Sammlungstypinstanz, VARRAY oder NESTED TABLE .
Syntax
Die Syntax lautet wie folgt:
JSON_ARRAY
( expr [ FORMAT JSON ] [, expr [ FORMAT JSON ] ]...
[ JSON_on_null_clause ] [ JSON_returning_clause ]
[ STRICT ] ) Wo:
exprist ein beliebiger SQL-Ausdruck, der zu einem JSON-Objekt, einem JSON-Array, einem numerischen Literal, einem Textliteral, Datum, Zeitstempel odernullausgewertet wird .FORMAT JSONgibt an, dass die Eingabezeichenfolge JSON ist und daher in der Ausgabe nicht in Anführungszeichen gesetzt wird.JSON_on_null_clausegibt das zu verwendende Verhalten an, wennexpreinen Nullwert enthält (d. h. entweder Nullwerte in die Ausgabe aufnehmen oder nicht).JSON_returning_clausegibt den Typ des Rückgabewerts an.STRICTprüft, ob die Ausgabe der JSON-Generierungsfunktion korrektes JSON ist oder nicht. Schlägt die Prüfung fehl, wird ein Syntaxfehler ausgegeben.
Beispiel
Hier ist ein Beispiel, um zu demonstrieren, wie es funktioniert:
SELECT JSON_ARRAY(1, 2, 3) FROM DUAL; Ergebnis:
[1,2,3]
Verschachtelt
Sie können JSON_ARRAY() auch verschachteln Funktionen innerhalb eines anderen JSON_ARRAY() Funktion:
SELECT JSON_ARRAY(
JSON_ARRAY(1, 2, 3),
JSON_ARRAY(4, 5, 6)
)
FROM DUAL; Ergebnis:
[[1,2,3],[4,5,6]]
Das FORMAT JSON Klausel
Sie können das FORMAT JSON verwenden -Klausel, um anzugeben, dass die Eingabezeichenfolge JSON ist und daher in der Ausgabe nicht in Anführungszeichen gesetzt werden sollte.
Hier ist ein Beispiel zur Veranschaulichung:
SELECT
JSON_ARRAY('{"a":1}') AS r1,
JSON_ARRAY('{"a":1}' FORMAT JSON) AS r2
FROM DUAL; Ergebnis:
R1 R2
________________ ____________
["{\"a\":1}"] [{"a":1}] Nullwerte
Sie können angeben, ob im resultierenden Array Nullwerte enthalten sind oder nicht.
Um sie einzuschließen, verwenden Sie NULL ON NULL :
SELECT
JSON_ARRAY(1, null, 3 NULL ON NULL)
FROM DUAL; Ergebnis:
[1,null,3]
Um sie auszuschließen, verwenden Sie ABSENT ON NULL :
SELECT
JSON_ARRAY(1, null, 3 ABSENT ON NULL)
FROM DUAL; Ergebnis:
[1,3]
ABSENT ON NULL ist die Standardeinstellung.
Eine ausführlichere Erklärung dieser Funktion finden Sie in der Dokumentation von Oracle.