sql >> Database teknologi >  >> RDS >> Oracle

JSON_ARRAY() Funktion i Oracle

I Oracle Database er JSON_ARRAY() funktion opretter et JSON-array ud fra en sekvens af SQL-skalære udtryk eller en samlingstypeforekomst, VARRAY eller NESTED TABLE .

Syntaks

Syntaksen ser sådan ud:

JSON_ARRAY
  ( expr [ FORMAT JSON ] [, expr [ FORMAT JSON ] ]...
   [ JSON_on_null_clause ] [ JSON_returning_clause ]
   [ STRICT ]  )

Hvor:

  • expr er ethvert SQL-udtryk, der evalueres til et JSON-objekt, et JSON-array, en numerisk literal, en tekstliteral, dato, tidsstempel eller null .
  • FORMAT JSON angiver, at inputstrengen er JSON, og vil derfor ikke blive citeret i outputtet.
  • JSON_on_null_clause angiver den adfærd, der skal bruges, når expr indeholder en null-værdi (dvs. inkludere enten null-værdier i output eller ikke).
  • JSON_returning_clause angiver typen af ​​returværdi.
  • STRICT kontrollerer, om outputtet fra JSON-genereringsfunktionen er korrekt JSON. Hvis kontrollen mislykkes, opstår der en syntaksfejl.

Eksempel

Her er et eksempel for at demonstrere, hvordan det virker:

SELECT JSON_ARRAY(1, 2, 3) FROM DUAL;

Resultat:

[1,2,3]

Indlejret

Du kan også indlejre JSON_ARRAY() fungerer i en anden JSON_ARRAY() funktion:

SELECT JSON_ARRAY(
    JSON_ARRAY(1, 2, 3),
    JSON_ARRAY(4, 5, 6)
    )
  FROM DUAL;

Resultat:

[[1,2,3],[4,5,6]]

FORMAT JSON Klausul

Du kan bruge FORMAT JSON klausul for at angive, at input-strengen er JSON, og bør derfor ikke citeres i outputtet.

Her er et eksempel til demonstration:

SELECT 
    JSON_ARRAY('{"a":1}') AS r1,
    JSON_ARRAY('{"a":1}' FORMAT JSON) AS r2
FROM DUAL;

Resultat:

              R1           R2 
________________ ____________ 
["{\"a\":1}"]    [{"a":1}]   

Nul-værdier

Du kan angive, om null-værdier skal inkluderes i det resulterende array.

For at inkludere dem, brug NULL ON NULL :

SELECT 
    JSON_ARRAY(1, null, 3 NULL ON NULL)
FROM DUAL;

Resultat:

[1,null,3]

For at udelukke dem, brug ABSENT ON NULL :

SELECT 
    JSON_ARRAY(1, null, 3 ABSENT ON NULL)
FROM DUAL;

Resultat:

[1,3]

ABSENT ON NULL er standard.

Se Oracles dokumentation for en mere detaljeret forklaring af denne funktion.


  1. Datagenerering og hardwarekvalitet

  2. Skal jeg slette eller deaktivere en række i en relationsdatabase?

  3. Opnå MySQL Failover &Failback på Google Cloud Platform (GCP)

  4. Sådan opretter du en tabel med flere fremmednøgler og ikke bliver forvirret