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:
expr
ist ein beliebiger SQL-Ausdruck, der zu einem JSON-Objekt, einem JSON-Array, einem numerischen Literal, einem Textliteral, Datum, Zeitstempel odernull
ausgewertet wird .FORMAT JSON
gibt an, dass die Eingabezeichenfolge JSON ist und daher in der Ausgabe nicht in Anführungszeichen gesetzt wird.JSON_on_null_clause
gibt das zu verwendende Verhalten an, wennexpr
einen Nullwert enthält (d. h. entweder Nullwerte in die Ausgabe aufnehmen oder nicht).JSON_returning_clause
gibt den Typ des Rückgabewerts an.STRICT
prü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.