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:
exprje 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 JSONoznačuje, že vstupní řetězec je JSON, a proto nebude na výstupu uveden v uvozovkách.JSON_on_null_clauseurčuje chování, které se má použít, kdyžexprobsahuje hodnotu null (tj. buď zahrnout hodnoty null do výstupu, nebo ne).JSON_returning_clauseurčuje typ návratové hodnoty.STRICTzkontroluje, 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.