ALTER DIMENSION

目的

ALTER DIMENSION文を使用すると、ディメンションの階層関係またはディメンション属性を変更できます。

関連項目:

「CREATE DIMENSION」および「DROP DIMENSION」を参照してください。

前提条件

ディメンションが自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、ALTER ANY DIMENSIONシステム権限が必要です。

所有者の権限があれば、ディメンションはいつでも変更されます。

構文

dimension_join_clause::=

attribute_clause::=

extended_attribute_clause::=

セマンティクス

次のキーワード、パラメータおよび句の意味は、ALTER DIMENSIONに対してのみ有効です。その他のキーワード、パラメータおよび句には、CREATE DIMENSION文での機能と同じ機能があります。詳細は、「CREATE DIMENSION」を参照してください。

schema

変更するディメンションのスキーマを指定します。schemaを指定しない場合、ディメンションは自分のスキーマ内にあるとみなされます。

dimension

ディメンション名を指定します。ディメンションは、すでに存在している必要があります。

ADD

ADD句を使用すると、ディメンションにレベル、階層または属性を追加できます。これらの要素の1つを追加しても、既存のマテリアライズド・ビューは無効になりません。

ADD LEVEL句は、他のADD句より前に処理されます。

DROP

DROP句を使用すると、ディメンションからレベル、階層または属性を削除できます。指定するすべてのレベル、階層または属性は、すでに存在している必要があります。

1つの属性で、1つのレベルに関連付けられている1つ以上のレベルと列の関係を削除できます。

DROPの制限事項

属性または階層がレベルを参照する場合は、すべての参照している属性および階層を削除するか、またはCASCADEを指定しないかぎり、このレベルを削除できません。

CASCADE

CASCADEを指定すると、レベルを参照する属性または階層をレベルとともに削除できます。

RESTRICT

RESTRICTを指定すると、属性または階層が参照するレベルを削除しないようにOracle Databaseに指示できます。これはデフォルトです。

COMPILE

COMPILEを指定すると、無効のディメンションを明示的に再コンパイルできます。ADD句またはDROP句が発行されると、ディメンションは自動的にコンパイルされます。ただし、ディメンションが参照するオブジェクトを変更する(たとえば、ディメンションで参照された表を削除した後再作成する)と、ディメンションが無効になるため、これを明示的に再コンパイルする必要があります。

ディメンションの変更: 例

次の例では、サンプル・スキーマsh内のcustomers_dimディメンションを変更します。

ALTER DIMENSION customers_dim
   DROP ATTRIBUTE country;

ALTER DIMENSION customers_dim
   ADD LEVEL zone IS customers.cust_postal_code
   ADD ATTRIBUTE zone DETERMINES (cust_city);