Dans Oracle Database, le JSON_ARRAY()
La fonction crée un tableau JSON à partir d'une séquence d'expressions scalaires SQL ou d'une instance de type de collection, VARRAY
ou NESTED TABLE
.
Syntaxe
La syntaxe ressemble à ceci :
JSON_ARRAY
( expr [ FORMAT JSON ] [, expr [ FORMAT JSON ] ]...
[ JSON_on_null_clause ] [ JSON_returning_clause ]
[ STRICT ] )
Où :
expr
est une expression SQL qui évalue un objet JSON, un tableau JSON, un littéral numérique, un littéral de texte, une date, un horodatage ounull
.FORMAT JSON
indique que la chaîne d'entrée est JSON et ne sera donc pas entre guillemets dans la sortie.JSON_on_null_clause
spécifie le comportement à utiliser lorsqueexpr
contient une valeur nulle (c'est-à-dire inclure ou non des valeurs nulles dans la sortie).JSON_returning_clause
spécifie le type de valeur de retour.STRICT
vérifie si la sortie de la fonction de génération JSON est correcte ou non JSON. Si la vérification échoue, une erreur de syntaxe est générée.
Exemple
Voici un exemple pour illustrer son fonctionnement :
SELECT JSON_ARRAY(1, 2, 3) FROM DUAL;
Résultat :
[1,2,3]
Imbriqué
Vous pouvez également imbriquer JSON_ARRAY()
fonctions dans un autre JSON_ARRAY()
fonction :
SELECT JSON_ARRAY(
JSON_ARRAY(1, 2, 3),
JSON_ARRAY(4, 5, 6)
)
FROM DUAL;
Résultat :
[[1,2,3],[4,5,6]]
Le FORMAT JSON
Article
Vous pouvez utiliser le FORMAT JSON
clause pour indiquer que la chaîne d'entrée est JSON et ne doit donc pas être entre guillemets dans la sortie.
Voici un exemple pour illustrer :
SELECT
JSON_ARRAY('{"a":1}') AS r1,
JSON_ARRAY('{"a":1}' FORMAT JSON) AS r2
FROM DUAL;
Résultat :
R1 R2 ________________ ____________ ["{\"a\":1}"] [{"a":1}]
Valeurs nulles
Vous pouvez spécifier si les valeurs nulles sont incluses ou non dans le tableau résultant.
Pour les inclure, utilisez NULL ON NULL
:
SELECT
JSON_ARRAY(1, null, 3 NULL ON NULL)
FROM DUAL;
Résultat :
[1,null,3]
Pour les exclure, utilisez ABSENT ON NULL
:
SELECT
JSON_ARRAY(1, null, 3 ABSENT ON NULL)
FROM DUAL;
Résultat :
[1,3]
ABSENT ON NULL
est la valeur par défaut.
Voir la documentation d'Oracle pour une explication plus détaillée de cette fonction.