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 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');