نمایش اطلاعات JSON به ساختار رابطه ای(تابع JSON_TABLE)

برای نمایش اطلاعات 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;

 

ارتباط با نویسنده مطلب:vahidusefzadeh@ کانال تخصصی اوراکل و لینوکس: OracleDB@

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.