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 REPLACEIF NOT EXISTSの両方を使用すると、ORA-11541: REPLACE and IF NOT EXISTS cannot coexist in the same DDL statementというエラーが発生します。

IF EXISTSCREATEとともに使用すると、ORA-11543: Incorrect IF NOT EXISTS clause for CREATE statementが発生します。

schema

階層を作成するスキーマを指定します。スキーマを指定しない場合、自分のスキーマに階層が作成されます。

階層

階層の名前を指定します。

SHARING

SHARING句は、アプリケーションのメンテナンスの際に、アプリケーション・ルートにオブジェクトを作成する場合に使用します。このタイプのオブジェクトはアプリケーション共通オブジェクトと呼ばれ、アプリケーション・ルートに属するアプリケーションPDBと共有できます。

次の共有属性のいずれかを使用して、オブジェクトを共有する方法を指定できます。

  • METADATA - メタデータ・リンクはメタデータを共有しますが、そのデータは各コンテナに固有です。このタイプのオブジェクトは、メタデータリンク・アプリケーション共通オブジェクトと呼ばれます。

  • NONE - オブジェクトは共有されず、アプリケーション・ルートでのみアクセスできます。

classification_clause

classification句を使用して、CAPTIONまたはDESCRIPTION分類の値を指定し、ユーザー定義分類を指定します。分類では、分析ビューとそのコンポーネントの情報を提供するためにアプリケーションで使用される、説明的なメタデータを提供します。

同じオブジェクトに、任意の数の分類を指定できます。分類の最大長は4000バイトです。

CAPTIONDESCRIPTION分類では、DDLショートカットCAPTION 'caption'およびDESCRIPTION 'description'または完全な分類構文を使用できます。

言語別に分類値を変更できます。CAPTIONまたはDESCRIPTION分類に言語を指定するには、完全な構文を使用する必要があります。言語を指定しない場合、分類の言語の値はNULLです。言語の値は、NULLまたは有効なNLS_LANGUAGE値である必要があります。

hier_using_clause

階層のメンバーを持つ属性ディメンションを指定します。

level_hier_clause

階層レベルの編成を指定します。

hier_attrs_clause

階層属性の説明的なメタデータを含む分類を指定します。特定のhier_attr_namehier_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);