CREATE HIERARCHY
目的
CREATE
HIERARCHY
文を使用して、階層を作成します。階層では、属性ディメンションのレベル間の階層関係を指定します。
前提条件
自分のスキーマ内に階層を作成する場合は、CREATE
HIERARCHY
システム権限が必要です。別のユーザーのスキーマに階層を作成する場合は、CREATE
ANY
HIERARCHY
システム権限が必要です。
構文
create_hierarchy::=
classification_clause::=
hier_using_clause::=
level_hier_clause::=
hier_attrs_clause::=
hier_attr_clause::=
hier_attr_name::=
セマンティクス
OR REPLACE
階層の既存の定義を異なる定義で置換するには、OR
REPLACE
を指定します。
FORCEおよびNOFORCE
正常にコンパイルされない場合でも強制的に階層を作成するには、FORCE
を指定します。NOFORCE
を指定した場合、階層を正常にコンパイルする必要があり、そうでない場合はエラーが発生します。デフォルトは、NOFORCE
です。
IF NOT EXISTS
IF NOT EXISTS
を指定すると、次の効果が得られます。
-
階層が存在していない場合は、文の最後に新しい階層が作成されます。
-
階層が存在している場合、これは文の最後の時点にある階層になります。古いものが検出されるため、新しいものは作成されません。
単一の文には、一度に1つのOR REPLACE
またはIF NOT EXISTS
を指定できます。同じ文でOR REPLACE
とIF NOT EXISTS
の両方を使用すると、ORA-11541: REPLACE and IF NOT EXISTS cannot coexist in the same DDL statement
というエラーが発生します。
IF EXISTS
はCREATE
とともに使用すると、ORA-11543: Incorrect IF NOT EXISTS clause for CREATE statement
が発生します。
schema
階層を作成するスキーマを指定します。スキーマを指定しない場合、自分のスキーマに階層が作成されます。
階層
階層の名前を指定します。
SHARING
SHARING句は、アプリケーションのメンテナンスの際に、アプリケーション・ルートにオブジェクトを作成する場合に使用します。このタイプのオブジェクトはアプリケーション共通オブジェクトと呼ばれ、アプリケーション・ルートに属するアプリケーションPDBと共有できます。
次の共有属性のいずれかを使用して、オブジェクトを共有する方法を指定できます。
-
METADATA
- メタデータ・リンクはメタデータを共有しますが、そのデータは各コンテナに固有です。このタイプのオブジェクトは、メタデータリンク・アプリケーション共通オブジェクトと呼ばれます。 -
NONE
- オブジェクトは共有されず、アプリケーション・ルートでのみアクセスできます。
classification_clause
classification句を使用して、CAPTION
またはDESCRIPTION
分類の値を指定し、ユーザー定義分類を指定します。分類では、分析ビューとそのコンポーネントの情報を提供するためにアプリケーションで使用される、説明的なメタデータを提供します。
同じオブジェクトに、任意の数の分類を指定できます。分類の最大長は4000バイトです。
CAPTION
とDESCRIPTION
分類では、DDLショートカットCAPTION
'
caption
'
およびDESCRIPTION
'
description
'
または完全な分類構文を使用できます。
言語別に分類値を変更できます。CAPTION
またはDESCRIPTION
分類に言語を指定するには、完全な構文を使用する必要があります。言語を指定しない場合、分類の言語の値はNULL
です。言語の値は、NULL
または有効なNLS_LANGUAGE
値である必要があります。
hier_using_clause
階層のメンバーを持つ属性ディメンションを指定します。
level_hier_clause
階層レベルの編成を指定します。
hier_attrs_clause
階層属性の説明的なメタデータを含む分類を指定します。特定のhier_attr_name
のhier_attr_clause
は、リストに1回のみ出現できます。
すべての階層には常に、すべての階層属性が含まれますが、この句で指定した場合を除き、階層属性には関連付けられている説明的なメタデータはありません。
hier_attr_clause
階層属性を指定して、1つ以上の分類を指定します。
hier_attr_name
階層属性を指定します。
例
次の例では、TIME_HIER
階層を作成します。
CREATE OR REPLACE HIERARCHY time_hier -- Hierarchy name
USING time_attr_dim -- Refers to TIME_ATTR_DIM attribute dimension
(month CHILD OF -- Months in the attribute dimension
quarter CHILD OF
year);
次の例では、PRODUCT_HIER
階層を作成します。
CREATE OR REPLACE HIERARCHY product_hier
USING product_attr_dim
(category
CHILD OF department);
次の例では、GEOGRAPHY_HIER
階層を作成します。
CREATE OR REPLACE HIERARCHY geography_hier
USING geography_attr_dim
(state_province
CHILD OF country
CHILD OF region);