قابلیت Annotation در اوراکل 23c

در نسخه های قبل از 23c، از طریق قابلیت comment می توانیم برای objectهایی نظیر table ، table column، materialized view، view کامنت و یا توضیحاتی را ثبت کنیم. comment گذاری با محدودیتهایی هم همراه است برای مثال امکان دسته بندی کامنتها وجود ندارد و به طور کلی همه توضیحات در یک متن طولانی ثبت خواهند شد.

در اوراکل 23c قابلیت Annotation که شباهتهای زیادی به قابلیت comment دارد، ارائه شد که بر اساس آن می توانیم برای objectهایی نظیر table, view, materialized view, index و column توضیحاتی را به صورت دسته بندی شده و بر اساس name و value ثبت کنیم.

 برای هر کدام از این objectها می توان تعداد زیادی Annotation_name و Annotation_value تعریف کرد و هر Annotation باید حداقل شامل یک Annotation_name باشد ولی الزامی به تعریف Annotation_value وجود ندارد.

*در نحوه نامگذاری Annotation_nameها محدودیتی وجود ندارد.

SQL> create table STD 
(
id number  annotations (DESCRIPTION1 'student ID',Description2 ‘coooode daneshjoiieee!!’),
name varchar2(20)  annotations(Description ‘Full Name for students’)
)
annotations (DESCRIPTION ‘Student Table’);
Table created

کامنتهای ثبت شده برای جدول STD را می توان در ویوی USER_ANNOTATIONS_USAGE مشاهده کرد:

SQL> select object_name,column_name,annotation_name,annotation_value from USER_ANNOTATIONS_USAGE;
OBJEC COLUMN_NAM ANNOTATION_NAME           ANNOTATION_VALUE
----- ---------- ------------------------- -------------------------
STD              DESCRIPTION                      Student Table
STD   ID         DESCRIPTION1                      student ID
STD   ID         DESCRIPTION2               coooode daneshjoiieee!!
STD   NAME       DESCRIPTION               Full Name for students

*دو ویوی user_annotation_values و user_annotations هم می توانند اطلاعات خلاصه تری را در این زمینه نمایش دهند.

امکان حذف Annotationها هم وجود دارد:

SQL> alter table STD modify  (id annotations (drop DESCRIPTION1));
Table altered
SQL> select object_name,column_name,annotation_name,annotation_value from USER_ANNOTATIONS_USAGE;
OBJEC COLUMN_NAM ANNOTATION_NAME           ANNOTATION_VALUE
----- ---------- ------------------------- -------------------------
STD              DESCRIPTION               Student Table
STD   ID         DESCRIPTION2              coooode daneshjoiieee!!
STD   NAME       DESCRIPTION               Full Name for students

در قسمت زیر چند مثال از نحوه اضافه کردن Annotation را مشاهده خواهید کرد:

SQL> alter table STD annotations (add name1 'value1',name2 'value2',name3 'value3');
Table altered
select object_name,column_name,annotation_name,annotation_value from USER_ANNOTATIONS_USAGE;
OBJEC COLUMN_NAM ANNOTATION_NAME           ANNOTATION_VALUE
----- ---------- ------------------------- -------------------------
STD              NAME1                     value1
STD              NAME2                     value2
STD              NAME3                     value3
STD              DESCRIPTION               Student Table
STD   ID         DESCRIPTION2              coooode daneshjoiieee!!
STD   NAME       DESCRIPTION               Full Name for students
SQL> alter table STD modify (name annotations (add N1 'V1',N2 'V2',N3));
Table altered
SQL> select object_name,column_name,annotation_name,annotation_value from USER_ANNOTATIONS_USAGE order by 2,3;
OBJEC COLUMN_NAM ANNOTATION_NAME           ANNOTATION_VALUE
----- ---------- ------------------------- -------------------------
STD   ID         DESCRIPTION2              coooode daneshjoiieee!!
STD   NAME       DESCRIPTION               Full Name for students
STD   NAME       N1                        V1
STD   NAME       N2                        V2
STD   NAME       N3
STD              DESCRIPTION               Student Table
STD              NAME1                     value1
STD              NAME2                     value2
STD              NAME3                     value3

همانطور که در ابتدای این متن اشاره شد، علاوه بر table و column می توانیم از این قابلیت برای objectهای دیگر نظیر view هم استفاده کنیم که در ادامه مثالی از آن را می بینیم:

SQL> create or replace view v1
  2     (test1    annotations (name1 'value1'),
  3      test2  annotations (name2 'value2'))
  4  as
  5  select 'test2','test1' from dual;
View created
SQL> select object_name,column_name,annotation_name,annotation_value from USER_ANNOTATIONS_USAGE where object_name='V1';
OBJECT_NAME     COLUMN_NAME     ANNOTATION_NAME      ANNOTATION_VALUE
--------------- --------------- -------------------- --------------------
V1              TEST1           NAME1                value1
V1              TEST2           NAME2                value2

 

 

ارائه خدمات مشاوره ، پشتیبانی و نصب و راه اندازی پایگاه داده اوراکل در سراسر کشور...................... تلفن: 09128110897 ایمیل:vahidusefzadeh@gmail.com

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

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