ALTER DOMAIN

目的

この文は、ドメインを変更する場合に使用します。ドメインを変更するときには、そのドメインに依存するオブジェクトに関するチェックとカタログの変更が行われることに注意してください。

前提条件

ドメインが自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、そのドメインに対するALTERオブジェクト権限またはALTER ANY DOMAINシステム権限が必要です。

構文

annotations_clause の完全な構文およびセマンティクスについては、「annotations_clause」を参照してください。

セマンティクス

IF EXISTS

IF EXISTSは、既存のドメインを変更する場合に指定します。

ALTER DOMAINとともにIF NOT EXISTSを指定すると、ALTER/DROP文のIF EXISTS句が正しくありませんというエラーが発生します。

ADD DISPLAY

display_expressionをドメインに追加します。すでにドメインにdisplay_expressionがある場合は、エラーが発生します。

指定されたドメインの式に対するDOMAIN_DISPLAYを参照しているすべてのSQL文が無効になります。

ドメイン機能については、「ドメイン・ファンクション」を参照してください

MODIFY DISPLAY

ドメインの表示式をdisplay_expressionに変更し、指定されたドメインの式に対してDOMAIN_DISPLAYを参照するすべてのSQL文を無効にします。

ドメインに関連付けられた表示式がない場合は、エラーが発生します。

指定されたドメインの式に対するDOMAIN_DISPLAYを参照しているすべてのSQL文が無効になります。

ALTER DOMAIN ADD DISPLAYALTER DOMAIN MODIFY DISPLAYは、どちらもドメインで許可されたすべてのデータ型と照合して表示式の型をチェックします。

DROP DISPLAY

ドメインに表示式がない場合は、エラーが発生します。ドメインに依存するフレキシブル・ドメインがある場合は、エラーが発生します。

それ以外の場合は、ドメインの説明から表示式が削除され、指定されたドメインの式に対するDOMAIN_DISPLAYを参照しているSQL文がすべて無効になります。

ADD MODIFY DROP ORDER

これに該当するDDLのセマンティクスは、ORDER式およびDOMAIN_ORDER関数に変換した場合のDISPLAYと同じです。

annotations_clause

関連項目:

次の文は、ドメインday_of_weekの表示式を変更します。ドメインに表示式がない場合は、エラーが発生します:

ALTER DOMAIN day_of_week
      MODIFY DISPLAY LOWER(day_of_week);

次の文は、ドメインday_of_weekの表示式を削除します。ドメインに表示式がない場合は、エラーが発生します:

ALTER DOMAIN day_of_week
      DROP DISPLAY;

次の文は、ドメインday_of_weekに表示式を追加します。すでにドメインに表示式がある場合は、エラーが発生します:

ALTER DOMAIN day_of_week
      ADD DISPLAY INITCAP(day_of_week);

次の文は、ドメインyear_of_birthの順序式を変更します。ドメインに順序式がない場合は、エラーが発生します:

ALTER DOMAIN year_of_birth
      MODIFY ORDER MOD(year_of_birth,100);

次の文は、ドメインyear_of_birthから順序式を削除します。ドメインに順序式がない場合は、エラーが発生します:

ALTER DOMAIN year_of_birth
      DROP ORDER;

次の文は、ドメインyear_of_birthに順序式を追加します。すでにドメインに順序式がある場合は、エラーが発生します:

ALTER DOMAIN year_of_birth
      ADD ORDER FLOOR(year_of_birth/100);

次の例では、値が"day_of_week"の注釈Displayをドメインに追加します。すでにドメインにDisplay注釈がある場合は、エラーが発生します:

ALTER DOMAIN day_of_week
      ANNOTATIONS(Display 'Day of week');