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:
expr
to dowolne wyrażenie SQL, którego wynikiem jest obiekt JSON, tablica JSON, literał numeryczny, literał tekstowy, data, znacznik czasu lubnull
.FORMAT JSON
wskazuje, że ciąg wejściowy to JSON i dlatego nie będzie cytowany w danych wyjściowych.JSON_on_null_clause
określa zachowanie do użycia, gdyexpr
zawiera wartość null (tzn. albo dołącz wartości null do danych wyjściowych, albo nie).JSON_returning_clause
określa typ zwracanej wartości.STRICT
sprawdza, 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.