ALTER DOMAIN
目的
この文は、ドメインを変更する場合に使用します。ドメインを変更するときには、そのドメインに依存するオブジェクトに関するチェックとカタログの変更が行われることに注意してください。
前提条件
ドメインが自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、そのドメインに対するALTERオブジェクト権限またはALTER ANY DOMAINシステム権限が必要です。
構文
annotations_clause の完全な構文およびセマンティクスについては、「annotations_clause」を参照してください。
セマンティクス
USECASE
このキーワードは省略可能であり、セマンティクスを明確にするために使用されます。ドメインがデータのユース・ケースを記述することを示します。
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 DISPLAYとALTER DOMAIN MODIFY DISPLAYは、どちらもドメインで許可されたすべてのデータ型と照合して表示式の型をチェックします。
DROP DISPLAY
ドメインに表示式がない場合は、エラーが発生します。ドメインに依存するフレキシブル・ドメインがある場合は、エラーが発生します。
それ以外の場合は、ドメインの説明から表示式が削除され、指定されたドメインの式に対するDOMAIN_DISPLAYを参照しているSQL文がすべて無効になります。
ADD MODIFY DROP ORDER
これに該当するDDLのセマンティクスは、ORDER式およびDOMAIN_ORDER関数に変換した場合のDISPLAYと同じです。
annotations_clause
関連項目:
-
注釈句のセマンティクスの詳細は、「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');