sql >> Databáze >  >> RDS >> Oracle

Funkce JSON_ARRAY() v Oracle

V databázi Oracle, JSON_ARRAY() funkce vytvoří pole JSON ze sekvence skalárních výrazů SQL nebo jedné instance typu kolekce, VARRAY nebo NESTED TABLE .

Syntaxe

Syntaxe vypadá takto:

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

Kde:

  • expr je jakýkoli výraz SQL, který se vyhodnotí jako objekt JSON, pole JSON, číselný literál, textový literál, datum, časové razítko nebo null .
  • FORMAT JSON označuje, že vstupní řetězec je JSON, a proto nebude na výstupu uveden v uvozovkách.
  • JSON_on_null_clause určuje chování, které se má použít, když expr obsahuje hodnotu null (tj. buď zahrnout hodnoty null do výstupu, nebo ne).
  • JSON_returning_clause určuje typ návratové hodnoty.
  • STRICT zkontroluje, zda výstup funkce generování JSON je správný JSON. Pokud kontrola selže, dojde k chybě syntaxe.

Příklad

Zde je příklad demonstrující, jak to funguje:

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

Výsledek:

[1,2,3]

Vnořeno

Můžete také vnořit JSON_ARRAY() funkce v rámci jiného JSON_ARRAY() funkce:

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

Výsledek:

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

FORMAT JSON Ustanovení

Můžete použít FORMAT JSON klauzule označující, že vstupní řetězec je JSON, a proto by neměl být na výstupu uvozován.

Zde je příklad k demonstraci:

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

Výsledek:

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

Nulové hodnoty

Můžete určit, zda budou ve výsledném poli zahrnuty hodnoty null.

Chcete-li je zahrnout, použijte NULL ON NULL :

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

Výsledek:

[1,null,3]

Chcete-li je vyloučit, použijte ABSENT ON NULL :

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

Výsledek:

[1,3]

ABSENT ON NULL je výchozí.

Podrobnější vysvětlení této funkce najdete v dokumentaci Oracle.


  1. Chyba SQL dotazu WordPress MySQL ve třídě WPDB

  2. Najděte verzi/záplaty serveru Weblogic v EBS R12.2/ Standalone Weblogic

  3. Jak mohu vidět dotazy, které jsou prováděny proti Oracle?

  4. DROP TABLE IF EXISTS Příklad v PostgreSQL