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

Fungsi JSON_OBJECT() di Oracle

Di Oracle Database, JSON_OBJECT() function membuat objek JSON dari urutan pasangan nilai kunci atau satu instance tipe objek.

Sintaks

Sintaksnya seperti ini:

JSON_OBJECT
  ( [ [ KEY ] key_expr VALUE val_expr [ FORMAT JSON ]
     ,]...
    [ JSON_on_null_clause ] [ JSON_returning_clause ]
    [ STRICT ] 
    [ WITH UNIQUE KEYS ]  )

Dimana:

  • [ KEY ] key_expr VALUE val_expr menentukan pasangan nilai kunci properti.
  • 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 sama dengan null (yaitu menyertakan nilai null dalam output atau tidak).
  • JSON_returning_clause menentukan jenis nilai kembalian.
  • STRICT memeriksa apakah output dari fungsi generasi JSON adalah JSON yang benar atau tidak. Jika pemeriksaan gagal, kesalahan sintaks akan muncul.
  • WITH UNIQUE KEYS menjamin bahwa objek JSON yang dihasilkan memiliki kunci unik.

Contoh

Berikut ini contoh untuk mendemonstrasikan cara kerjanya:

SELECT JSON_OBJECT(KEY 'score' VALUE 37) FROM DUAL;

Hasil:

{"score":37}

KEY bagian adalah opsional, jadi berikut ini mencapai hasil yang sama:

SELECT JSON_OBJECT('score' VALUE 37) FROM DUAL;

Hasil:

{"score":37}

Beberapa Pasangan Kunci/Nilai

Berikut ini contoh dengan beberapa pasangan kunci/nilai:

SELECT JSON_OBJECT(
    KEY 'fname' VALUE 'Homer',
    KEY 'lname' VALUE 'Escobar',
    KEY 'score' VALUE 237
    ) 
FROM DUAL;

Hasil:

{"fname":"Homer","lname":"Escobar","score":237}

JSON bersarang

Jika salah satu nilai yang Anda berikan berisi JSON, Anda dapat menggunakan FORMAT JSON argumen untuk menentukan bahwa itu berisi JSON dan tidak boleh dikutip dalam output.

Contoh:

SELECT JSON_OBJECT(
    KEY 'details' 
    VALUE '{"name": "Peter", "score": 64}' 
    FORMAT JSON
    ) 
FROM DUAL;

Hasil:

{"details":{"name": "Peter", "score": 64}}

Inilah yang terjadi jika kita menghapus FORMAT JSON bagian:

SELECT JSON_OBJECT(
    KEY 'details' 
    VALUE '{"name": "Peter", "score": 64}'
    ) 
FROM DUAL;

Hasil:

{"details":"{\"name\": \"Peter\", \"score\": 64}"} 

Contoh Basis Data

Misalkan kita menjalankan kueri berikut:

SELECT *
FROM regions;

Hasil:

   REGION_ID               REGION_NAME 
____________ _________________________ 
           1 Europe                    
           2 Americas                  
           3 Asia                      
           4 Middle East and Africa    

Berikut kueri yang sama, tetapi dengan kolom yang dipilih diteruskan ke JSON_OBJECT() fungsi:

SELECT JSON_OBJECT(*) 
FROM regions;

Hasil:

{"REGION_ID":1,"REGION_NAME":"Europe"}                    
{"REGION_ID":2,"REGION_NAME":"Americas"}                  
{"REGION_ID":3,"REGION_NAME":"Asia"}                      
{"REGION_ID":4,"REGION_NAME":"Middle East and Africa"}

Dan ini dia hanya dengan satu kolom yang diteruskan ke fungsi:

SELECT JSON_OBJECT(region_name) 
FROM regions;

Hasil:

{"region_name":"Europe"}                    
{"region_name":"Americas"}                  
{"region_name":"Asia"}                      
{"region_name":"Middle East and Africa"} 

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. Mewakili alamat IPv4/IPv6 di Oracle

  2. Bagaimana saya bisa mendeskripsikan tabel di Oracle tanpa menggunakan perintah DESCRIBE?

  3. Ubah nomor tanggal Excel menjadi tanggal Oracle

  4. cx_Oracle tidak terhubung saat menggunakan SID alih-alih nama layanan pada string koneksi

  5. Mengapa Konversi tidak valid meminta KODE KESALAHAN:17132?