برای نمایش اطلاعات JSON به صورت relational و همچنین map کردن elementهای استفاده شده در JSON Documentها به یک نوع داده مشخص، می توان از تابع JSON_TABLE استفاده کرد.
به عنوان مثال، در ادامه خواهیم دید که چگونه می توان با کمک تابع JSON_TABLE برای هر کدام از elementهای موجود در JSON Document جدول myt، نوع داده ای تعریف کرد و این اطلاعات را با ساختار رابطه ای نمایش داد.
اطلاعات JSON:
SQL> select ET1 from myt;
{“first_name“:”vahid”,”last_name“:”usefzadeh”,”Salary“:”500000″,”Contact“:{“Email“:”vahidusefzadeh@gmail.com”,”Phone“:”09128110897”}}
نمایش به صورت relational:
SELECT t.FirstName, t.LastName, t.Salary_L + 10 Salary, email, phone
FROM myt,
JSON_TABLE(myt.et1,
‘$’
COLUMNS(FirstName VARCHAR2(50 CHAR) PATH ‘$.first_name‘,
LastName VARCHAR2(50 CHAR) PATH ‘$.last_name‘,
Salary_L number(32) PATH ‘$.Salary‘,
email VARCHAR2(100 CHAR) PATH ‘$.Contact.Email‘,
phone VARCHAR2(50 CHAR) PATH ‘$.Contact.Phone‘)) t
where id = 1;
البته فرمت استفاده شده در پرس و جوی فوق، به نسخه 12c برمی گردد و در اوراکل 18c می توان به شکل ساده تری تابع JSON_TABLE را صدا زد:
SELECT t.FirstName, t.LastName, t.Salary_L + 10 Salary, email, phone
FROM myt,
JSON_TABLE(myt.et1,
‘$’
COLUMNS(FirstName VARCHAR2(14) PATH first_name,
LastName VARCHAR2(15) PATH last_name,
Salary_L number(32) PATH Salary,
email VARCHAR2(45) PATH Contact.Email,
phone VARCHAR2(12) PATH Contact.Phone)) t
where id = 1;