sql >> Database >  >> RDS >> Oracle

JSON_ARRAY() Functie in Oracle

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:

  • expr is een SQL-expressie die evalueert naar een JSON-object, een JSON-array, een numerieke letterlijke, een letterlijke tekst, datum, tijdstempel of null .
  • FORMAT JSON geeft aan dat de invoerreeks JSON is en daarom niet in de uitvoer wordt geciteerd.
  • JSON_on_null_clause specificeert het gedrag dat moet worden gebruikt wanneer expr bevat een null-waarde (d.w.z. neem null-waarden op in de uitvoer of niet).
  • JSON_returning_clause specificeert het type retourwaarde.
  • STRICT controleert 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.


  1. Hoe klob-veldgegevens te exporteren in Oracle SQL Developer

  2. Kan PostgreSQL niet installeren:er is een fout opgetreden bij het uitvoeren van het Microsoft VC++ runtime-installatieprogramma op Windows XP

  3. Database corruptie

  4. Salesforce SOQL van Crystal Reports