خرید بک لینک

همانطور که می دانید از نسخه 12cR1، دیتابیس 1 از JSON پشتیبانی می کند به این معنی که با ارائه چندین تابع، امکان انجام عملیاتی چون اجرای query، ایجاد index و ایجاد view را بر روی فیلدهای JSON Document فراهم می کند.

البته در این نسخه ها(تا قبل از اوراکل 21)، Data Type جدیدی برای JSON معرفی نشده و JSON Documentها باید در نوع داده VARCHAR2، CLOB و یا BLOB ذخیره شوند(نوع داده NCLOB و NVARCHAR2 را هم باید به این مجموعه اضافه کرد) که معمولا نوع داده BLOB برای این کار توصیه می شود(مطالعه مطلب “JSON و دیتابیس اوراکل” پیشنهاد می شود).

SQL> create table tbl_JSON_12c (id number,ettelaat varchar2(4000)  constraint jc1 check (ettelaat is json) );

SQL> insert into tbl_JSON_12c values(2,'{“First_Name”:”Vahid”,”Last_Name”:”Usefzadeh”,”Contact”:{“Email”:”[email protected]”,”Phone”:”091111111117″}}’);
1 row inserted

SQL> select t.ETTELAAT.Last_Name,t.ETTELAAT.Contact.Email from tbl_JSON_12c t;
LAST_NAME         CONTACT
————–  —————————-
Usefzadeh        [email protected]

اوراکل در نسخه 21c، نوع داده JSON را معرفی کرده است:

SQL> create table tbl_JSON_21c (id number, ettelaat  json) ;
Table created.

SQL> insert into usef.tbl_JSON_21c values(2,'{"First_Name":"Vahid","Last_Name":"Usefzadeh","Contact":{"Email":"[email protected]","Phone":"091111111117"}}');
1 row created.

اطلاعات در این نوع از داده، به صورت باینری ذخیره می شوند:

SQL> select *   from tbl_JSON_21c t;
        ID ETTELAAT
---------- --------
         2 <BLOB>

و برای مشاهده اطلاعات ذخیره شده می توان از توابع مربوط به JSON استفاده کرد که یکی از این توابع، json_serialize است:

SQL> select id,json_serialize(t.ettelaat) ettelaat   from tbl_JSON_21c t;
        ID ETTELAAT
---------- ---------------------------------
        2{"First_Name":"Vahid","Last_Name":

استفاده از کلمه کلیدی pretty در این تابع، خروجی را به شکل بهتری نمایش می دهد:

select t.id,json_serialize(t.ettelaat pretty) from tbl_JSON_21c t;

{
  "First_Name" : "Vahid",
  "Last_Name" : "Usefzadeh",
  "Contact" :
  {
    "Email" : "[email protected]",
    "Phone" : "091111111117"
  }
}

مثال دیگری از نحوه استفاده از تابع json_serialize را در پرس و جوی زیر مشاهده می کنید:

select json_serialize(t.ETTELAAT.Last_Name) Last_Name,json_serialize(t.ETTELAAT.Contact.Email) Email from tbl_JSON_21c t;
LAST_NAME    EMAIL
"Usefzadeh"    "[email protected]"

علاوه بر تابع json_serialize، می توان از توابعی دیگری نظیر json_value، json_table، json_query و … استفاده کرد که نحوه استفاده هر یک از آنها را قبلا در مطلب “JSON و دیتابیس اوراکل” توضیح داده ایم.

ارائه خدمات مشاوره ، پشتیبانی و نصب و راه اندازی پایگاه داده اوراکل در سراسر کشور...................... تلفن: 09128110897 ایمیل:[email protected]

برچسب: نویسنده: خنجی تاريخ: جمعه 15 بهمن 1400 ساعت: 14:09

صفحه بندی