Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Funkcja JSON_ARRAY() w Oracle

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 lub null .
  • 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, gdy expr 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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wywołanie procedury Oracle z parametrem typu kolekcji PL/SQL przez .NET

  2. Jak formatować liczby za pomocą znaku minus/plus w Oracle

  3. Czytaj i importuj plik XLSX (Excel) w Oracle

  4. Oracle PL/SQL — kolekcje (tabele zagnieżdżone)

  5. POWRÓT Oracle do użycia w Javie (JDBC, Prepared Statement)