Oracle Database 23cの新機能に関する注意事項

この記事では、Oracle Database 23c の新しいアノテーション機能を使用して、データベース オブジェクトに説明情報 (メタデータ) を追加する方法を紹介します。

基本的な考え方

アノテーション( Annotation )は、簡単に言うとデータベースのアノテーション(Comment)の拡張機能と理解できます。コメントは、テーブルや列などのデータベース オブジェクトに説明的な情報を追加します。アノテーションは、データベース オブジェクトの名前と値のペアの説明を作成することにより、この機能をさらに拡張します。注釈内の名前と値は両方とも文字列であり、有用な情報をカスタマイズできます。

現在、アノテーションは次のデータベース オブジェクトをサポートしています。

  • テーブルとフィールド
  • ビューとフィールド
  • マテリアライズドビューとフィールド
  • 索引
  • ドメインフィールドと複数列ドメインフィールド

注釈を使用する

注釈をサポートするオブジェクトの場合、通常、次の形式を使用して注釈を定義できます。

ANNOTATIONS ( {
   
   ADD|DROP} annotation_name {
   
   'annotation_value'} {
   
   ,} )

以下は、テーブルに注釈を追加する例です。注釈を追加する場合、ADD キーワードは省略できます。

CREATE TABLE Employee (
  Id  NUMBER(5) ANNOTATIONS(Identity, Display 'Employee ID', Group 'Emp_Info'),
  Ename VARCHAR2(50) ANNOTATIONS(Display 'Employee Name',  Group 'Emp_Info'),
  Sal NUMBER ANNOTATIONS(Display 'Employee Salary', UI_Hidden)
) ANNOTATIONS (Display 'Employee Table');

の、

  • 注釈 Identity は、このフィールドが ID フィールドであることを示します。注釈には名前のみがあり、値はありません。
  • 注釈 Display は、UI インターフェイスの推奨表示名を提供します。
  • アノテーショングループは表示情報を分類することができます。

これらの注釈はカスタム コンテンツであり、データベースや他のツールにとっては意味がないことに注意してください。

操作を追加または削除することで、オブジェクトの注釈を変更できます。例えば:

alter table Employee annotations (Visibility 'Everyone');

alter table Employee annotations (drop Visibility);

alter table Employee annotations (add Visibility 'Everyone');

同様の操作をフィールドレベルの注釈に対して実行することもできます。

alter table Employee modify (Id annotations (Visibility 'Hidden'));

alter table Employee modify (Id annotations (drop Visibility));

alter table Employee modify (Id annotations (add Visibility 'Hidden'));

関連ビュー

現在、アノテーション関連のビューには、USER_ANNOTATIONSUSER_ANNOTATIONS_USAGEUSER_ANNOTATION_VALUES、および対応する ALL ビューおよび DBA ビューが含まれます。

select object_name,
       object_type,
       column_name,
       domain_name,
       domain_owner,
       annotation_name,
       annotation_value
from   user_annotations_usage
order by annotation_name, annotation_value;

OBJECT_NAME  OBJECT_TYPE  COLUMN_NAME  DOMAIN_NAME  DOMAIN_OWNER ANNOTATION_NAM ANNOTATION_VALUE
------------ ------------ ------------ ------------ ------------ -------------- --------------------
EMPLOYEE     TABLE        ID                                     DISPLAY        Employee ID
EMPLOYEE     TABLE        ENAME                                  DISPLAY        Employee Name
EMPLOYEE     TABLE        SAL                                    DISPLAY        Employee Salary
EMPLOYEE     TABLE                                               DISPLAY        Employee Table
EMPLOYEE     TABLE        ID                                     IDENTITY
EMPLOYEE     TABLE        ID                                     GROUP          Emp_Info
EMPLOYEE     TABLE        ENAME                                  GROUP          Emp_Info
EMPLOYEE     TABLE        SAL                                    UI_Hidden
EMPLOYEE     TABLE                                               VISIBILITY     Everyone
EMPLOYEE     TABLE        ID                                     VISIBILITY     Hidden

おすすめ

転載: blog.csdn.net/horses/article/details/130049368