CREATE HIERARCHY

目的

CREATE HIERARCHY文を使用して、階層を作成します。階層では、属性ディメンションのレベル間の階層関係を指定します。

ヒント:

階層を作成するSQLスクリプトは、Oracle Live SQLのWebサイト(https://livesql.oracle.com/apex/livesql/file/index.html)で表示および実行できます。このWebサイトには、分析ビューの作成方法および使用方法を示すスクリプトおよびチュートリアルが用意されています。

前提条件

自分のスキーマ内に階層を作成する場合は、CREATE HIERARCHYシステム権限が必要です。別のユーザーのスキーマに階層を作成する場合は、CREATE ANY HIERARCHYシステム権限が必要です。

構文

create_hierarchy::=

sharing_clause::=

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です。

schema

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

階層

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

sharing_clause

階層をアプリケーション共通オブジェクトとして作成するかどうかを指定します。METADATAを指定すると、階層のメタデータが共有されますが、そのデータは各コンテナに固有です。DATAを指定すると、階層オブジェクトが共有され、そのデータはアプリケーション・コンテナ内のすべてのコンテナに対して同じになり、アプリケーション・ルートにのみ格納されます。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);