ستونهای VC_* در ویوهای data dictionary

همانطور که می دانید، تعدادی از فیلدهای مربوط به ویوهای data dictionary، هنوز(در اوراکل 18c) از نوع long می باشند. برای مثال، فیلد text در ویوی USER_VIEWS از این دسته می باشد:

SQL> desc USER_VIEWS

Name                          Type                     Comments                                                                

————                ————–              ———————————-

VIEW_NAME          VARCHAR2(128)          Name of the view

TEXT_LENGTH        NUMBER                    Length of the view text

TEXT                       LONG                         View text      

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

SQL> select * from user_views where text like ‘%SELECT%’;

ORA-00932: inconsistent datatypes: expected CHAR got LONG

در همین زمینه، در اوراکل 12c، ستونهایی به بعضی از ویوهای data dictionary اضافه شدند که نام انها فرمت VC_* دارد و داده های از نوع long را به صورت varchar2 نمایش می دهند. لیست این ستونها با دستور زیر قابل مشاهده می باشد:

SQL> select table_name, column_name from dba_tab_cols where column_name like ‘%_VC’ escape ‘’ order by 1;

این ستونها از نوع varchar2 می باشند. این اتفاق برای ویوی user_views هم رخ داده است:

SQL> desc USER_VIEWS

Name                           Type                                       Comments

———————-          ————–                   —————————————–

VIEW_NAME              VARCHAR2(128)                Name of the view

TEXT_LENGTH            NUMBER                          Length of the view text

TEXT                          LONG                                 View text                                                                

TEXT_VC                   VARCHAR2(4000)            Possibly truncated view text as VARCHAR2           

 همانطور که می بینید، در ویوی user_views، برای فیلد TEXT که از نوع long می باشد، فیلد دیگری هم از نوع varchar2 اضافه شده است که می توان به راحتی در ان جستجو را انجام داد:

SQL> select count(*) from user_views where text_vc like ‘%SELECT%’;

150

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *