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

Bagaimana cara memilih beberapa baris menjadi variabel string JSON?

Berikut adalah sesuatu yang dapat Anda lakukan di Oracle 12.2. Di Oracle 19 mungkin sedikit lebih sederhana, menggunakan json_object(*) .

Menggunakan DEPT standar tabel dari SCOTT skema ilustrasi:

declare
  items  json_object_t;
  result clob;
begin
  select json_object(
           key   'items'
           value json_arrayagg(
                   json_object(
                     key 'deptno' value deptno,
                     key 'dname'  value dname,
                     key 'loc'    value loc
                   )
                 ) format json
         ) 
  into   result
  from   scott.dept;
  items := json_object_t(result);
-- Check what is stored in items
  dbms_output.put_line('items.stringify = ' || chr(10) || items.stringify);
end;
/

Saya menyertakan panggilan ke stringify metode untuk menampilkan konten json_object_t obyek. ApEx mungkin lebih suka di json_object_t tipe data - jika yang Anda butuhkan hanyalah string, Anda tidak perlu membuat objek itu, karena result sudah menjadi string yang Anda butuhkan.

Hasilnya terlihat seperti ini:

items.stringify = 
{"items":[{"deptno":10,"dname":"ACCOUNTING","loc":"NEW YORK"},{"deptno":20,"dname":"RESEARCH","loc":"DALLAS"},{"deptno":30,"dname":"SALES","loc":"CHICAGO"},{"deptno":40,"dname":"OPERATIONS","loc":"BOSTON"}]}


PL/SQL procedure successfully completed.

Perhatikan bahwa string tidak cukup diformat - dan seharusnya tidak. Itu adalah sesuatu yang hanya akan dilakukan seseorang sebagai langkah terakhir setelah menerimanya, bukan dari akhir "transmisi".




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-12638:Pengambilan kredensial gagal

  2. Prosedur/fungsi PL/SQL untuk menampilkan data dari tabel yang berbeda secara dinamis beserta nama kolom di baris data pertama

  3. Statistik Dinamis Adaptif Membunuh Performa di 12.1.0.2 RAC

  4. Dapatkan perbedaan antara dua tanggal baik Dalam Bulan dan hari di sql

  5. mengeksekusi `EXECUTE IMMEDIATE` Pernyataan Oracle Mendapatkan Kesalahan