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".