Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Fungsi JSON_ARRAY() di Oracle

Di Oracle Database, JSON_ARRAY() fungsi membuat larik JSON dari urutan ekspresi skalar SQL atau satu contoh tipe koleksi, VARRAY atau NESTED TABLE .

Sintaks

Sintaksnya seperti ini:

JSON_ARRAY
  ( expr [ FORMAT JSON ] [, expr [ FORMAT JSON ] ]...
   [ JSON_on_null_clause ] [ JSON_returning_clause ]
   [ STRICT ]  )

Dimana:

  • expr adalah ekspresi SQL apa pun yang mengevaluasi objek JSON, larik JSON, literal numerik, literal teks, tanggal, stempel waktu, atau null .
  • FORMAT JSON menunjukkan bahwa string input adalah JSON, dan karena itu tidak akan dikutip dalam output.
  • JSON_on_null_clause menentukan perilaku yang akan digunakan saat expr berisi nilai nol (yaitu menyertakan nilai nol dalam output atau tidak).
  • JSON_returning_clause menentukan jenis nilai kembalian.
  • STRICT memeriksa apakah output dari fungsi pembuatan JSON adalah JSON yang benar atau tidak. Jika pemeriksaan gagal, kesalahan sintaks akan muncul.

Contoh

Berikut ini contoh untuk mendemonstrasikan cara kerjanya:

SELECT JSON_ARRAY(1, 2, 3) FROM DUAL;

Hasil:

[1,2,3]

Bersarang

Anda juga dapat membuat sarang JSON_ARRAY() fungsi dalam JSON_ARRAY() lain fungsi:

SELECT JSON_ARRAY(
    JSON_ARRAY(1, 2, 3),
    JSON_ARRAY(4, 5, 6)
    )
  FROM DUAL;

Hasil:

[[1,2,3],[4,5,6]]

FORMAT JSON Klausa

Anda dapat menggunakan FORMAT JSON klausa untuk menunjukkan bahwa string input adalah JSON, dan karenanya tidak boleh dikutip dalam output.

Berikut ini contoh untuk didemonstrasikan:

SELECT 
    JSON_ARRAY('{"a":1}') AS r1,
    JSON_ARRAY('{"a":1}' FORMAT JSON) AS r2
FROM DUAL;

Hasil:

              R1           R2 
________________ ____________ 
["{\"a\":1}"]    [{"a":1}]   

Nilai Null

Anda dapat menentukan apakah nilai null disertakan dalam larik yang dihasilkan atau tidak.

Untuk memasukkannya, gunakan NULL ON NULL :

SELECT 
    JSON_ARRAY(1, null, 3 NULL ON NULL)
FROM DUAL;

Hasil:

[1,null,3]

Untuk mengecualikannya, gunakan ABSENT ON NULL :

SELECT 
    JSON_ARRAY(1, null, 3 ABSENT ON NULL)
FROM DUAL;

Hasil:

[1,3]

ABSENT ON NULL adalah default.

Lihat dokumentasi Oracle untuk penjelasan lebih rinci tentang fungsi ini.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menghasilkan tanggal antara dua tanggal

  2. Nilai Urutan Oracle tidak dipesan

  3. Cara Memindahkan File dari Satu Direktori ke Direktori Lain Menggunakan PL SQL

  4. Cara Mendapatkan Tanggal Dari String di Oracle

  5. Oracle tidak menghapus kursor setelah menutup set hasil