annotations_clause
目的
注釈は、アプリケーション・メタデータをデータベースに一元的に格納するメカニズムを提供し、アプリケーション、モジュールおよびマイクロサービス間で共有できるようにします。
CREATE
文を使用して、作成時に所有する対象のスキーマ・オブジェクトに注釈を追加できます。
変更権限を持つサポート対象のスキーマ・オブジェクトに対しては、ALTER
文を使用して注釈を追加および削除できます。注釈名をスキーマ名で修飾する必要はありません。スキーマ・オブジェクトで注釈が削除されるたびに、またはスキーマ・オブジェクト全体が削除されると、注釈の使用が更新されて削除が反映されます。
個々の注釈には名前とオプションの値があります。名前と値はどちらも自由形式テキストフィールドです。注釈は付加的です。つまり、単一のDDLの同じスキーマ・オブジェクトに複数の注釈を指定できます。
初めてスキーマ・オブジェクトに注釈名を指定すると、注釈が自動的に作成されます。サポート対象のスキーマ・オブジェクトには、表、ビュー、マテリアライズド・ビューおよび索引があります。注釈は、注釈が追加されているデータベース・オブジェクトに対する下位要素として表されます。スキーマ・オブジェクトで注釈が削除されるたびに、またはスキーマ・オブジェクト全体が削除されると、注釈の使用が更新されて削除が反映されます。
ディクショナリ・ビューは、すべてのスキーマ・オブジェクトにわたって注釈とその使用のリストを追跡します。ディクショナリ・ビューUSER|ALL|DBA_ANNOTATIONS_USAGE
を問い合せて、スキーマ・オブジェクトの注釈をリストできます。
前提条件
オブジェクトに注釈を指定するには、スキーマ・オブジェクトを所有するか、スキーマ・オブジェクトに対するALTER
権限が必要です。
構文
annotations_clause::=
annotations_list::=
annotation::=
annotation_name::=
annotation_value::=
セマンティクス
annotations_clause
ADD
、DROP
またはREPLACE
を指定して、注釈を作成、削除または変更します。
-
ADD
は、annotation_name
を作成します。これは、注釈の前にキーワードが指定されていないときのデフォルトです。オブジェクトにすでにこの名前の注釈がある場合、文はエラーになります。ADD IF NOT EXISTS
を使用して、文をエラーなしで完了できるようにします。annotation_name
がすでに存在する場合は、IF NOT EXISTS
句の使用時に元の値を保持します。ADD [IF NOT EXISTS]
は、CREATE
文で使用する唯一の有効なオプションです。 -
DROP
は、オブジェクトからannotation_name
を削除します。オブジェクトにこの名前の注釈がない場合は、エラーが発生します。DROP IF EXISTS
を使用して、文をエラーなしで完了できるようにします。この句は、ALTER
文でのみ有効です。 -
REPLACE
は、annotation_name
のannotation_value
を指定された値に変更します。この値を省略すると、annotation_name
の既存の値がすべて削除されます。annotation_name
が存在しない場合、文はエラーになります。この句は、ALTER
文でのみ有効です。
annotation_name
は、最大1024文字の識別子です。注釈名が予約語の場合は、二重引用符で囲んで指定する必要があります。二重引用符で囲まれた識別子を使用すると、識別子に空白文字を含めることもできます。ただし、空白文字のみの識別子は受け入れられません。
注釈は、名前/値ペアまたは名前自体です。名前とオプションの値は、自由形式のテキスト・フィールドです。値は最大4000文字です。注釈Display_Label, 'Employee Salary'
には名前と値がありますが、注釈UI_Hidden
には名前のみがあり、値は不要です。UI_Hidden
は、列を非表示にすることを指定するために使用される独立した注釈です。
例
表への注釈の追加
次の例では、値Sort
およびGroup
を持つ2つの操作と、値を持たないスタンドアロンのHidden
を表t1
に追加します:
CREATE TABLE t1 (T NUMBER) ANNOTATIONS(Operations '["Sort", "Group"]', Hidden);
次の例に示すように、注釈の前にキーワードADD
(何も指定されていない場合のデフォルトの操作)を付けることができます。
CREATE TABLE t1 (T NUMBER) ANNOTATIONS (ADD Hidden);
表レベルでの注釈の変更
次の例では、t1
からすべての注釈を削除します:
ALTER TABLE t1 ANNOTATIONS(DROP Operations, DROP Hidden);
表の列への注釈の追加
CREATE TABLE t1 (T NUMBER ANNOTATIONS(Operations 'Sort' , Hidden) );
表および列への注釈の追加
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');
列レベルでの注釈の変更
ALTER TABLE employee MODIFY ename ANNOTATIONS ( DROP "Group", DROP IF EXISTS missing_annotation, REPLACE Display 'Emp name' );