W bazie danych Oracle JSON_ARRAY() funkcja tworzy tablicę JSON z sekwencji wyrażeń skalarnych SQL lub jednej instancji typu kolekcji, VARRAY lub NESTED TABLE .
Składnia
Składnia wygląda tak:
JSON_ARRAY
( expr [ FORMAT JSON ] [, expr [ FORMAT JSON ] ]...
[ JSON_on_null_clause ] [ JSON_returning_clause ]
[ STRICT ] ) Gdzie:
exprto dowolne wyrażenie SQL, którego wynikiem jest obiekt JSON, tablica JSON, literał numeryczny, literał tekstowy, data, znacznik czasu lubnull.FORMAT JSONwskazuje, że ciąg wejściowy to JSON i dlatego nie będzie cytowany w danych wyjściowych.JSON_on_null_clauseokreśla zachowanie do użycia, gdyexprzawiera wartość null (tzn. albo dołącz wartości null do danych wyjściowych, albo nie).JSON_returning_clauseokreśla typ zwracanej wartości.STRICTsprawdza, czy dane wyjściowe funkcji generowania JSON są poprawne w formacie JSON. Jeśli sprawdzenie się nie powiedzie, zgłaszany jest błąd składni.
Przykład
Oto przykład pokazujący, jak to działa:
SELECT JSON_ARRAY(1, 2, 3) FROM DUAL; Wynik:
[1,2,3]
Zagnieżdżone
Możesz także zagnieździć JSON_ARRAY() działa w innym JSON_ARRAY() funkcja:
SELECT JSON_ARRAY(
JSON_ARRAY(1, 2, 3),
JSON_ARRAY(4, 5, 6)
)
FROM DUAL; Wynik:
[[1,2,3],[4,5,6]]
FORMAT JSON Klauzula
Możesz użyć FORMAT JSON klauzula wskazująca, że ciąg wejściowy jest w formacie JSON i dlatego nie powinien być cytowany w danych wyjściowych.
Oto przykład do zademonstrowania:
SELECT
JSON_ARRAY('{"a":1}') AS r1,
JSON_ARRAY('{"a":1}' FORMAT JSON) AS r2
FROM DUAL; Wynik:
R1 R2
________________ ____________
["{\"a\":1}"] [{"a":1}] Wartości puste
Możesz określić, czy w wynikowej tablicy mają być zawarte wartości null.
Aby je uwzględnić, użyj NULL ON NULL :
SELECT
JSON_ARRAY(1, null, 3 NULL ON NULL)
FROM DUAL; Wynik:
[1,null,3]
Aby je wykluczyć, użyj ABSENT ON NULL :
SELECT
JSON_ARRAY(1, null, 3 ABSENT ON NULL)
FROM DUAL; Wynik:
[1,3]
ABSENT ON NULL jest ustawieniem domyślnym.
Zobacz dokumentację Oracle, aby uzyskać bardziej szczegółowe wyjaśnienie tej funkcji.