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 nebonull
.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.