構文
用途
CUBE_TABLE
は、キューブまたはディメンションのデータを抽出し、SQLベースのアプリケーションで使用可能な2次元形式のリレーショナル表に戻します。
このファンクションは、1つのVARCHAR2
引数を取ります。オプションのHIERARCHY句を使用すると、ディメンション階層を指定できます。キューブでは複数のHIERARCHY句(ディメンションごとに1つ)を使用できます。
次の様々なタイプの表を生成できます。
キューブ表には、各ディメンションのキー列およびキューブ内の各メジャーと計算されたメジャーの列が含まれています。キューブ表を作成するには、キューブを指定します。キューブのHIERARCHY句は、使用することも使用しないこともできます。複数の階層のあるディメンションの場合は、この句によって戻り値を指定された階層内のディメンション・メンバーとレベルに制限します。HIERARCHY句を使用しない場合は、すべてのディメンション・メンバーとすべてのレベルが含められます。
ディメンション表には、キー列、および各レベルと各属性の列が含まれています。次のいずれかのコードによりメンバーを識別するMEMBER_TYPE
列も含まれます。
L
- 表、ビュー、またはシノニムからロードされています。
A
- ロードされたメンバーおよびディメンション内の全階層の単一ルート、つまりすべての集計メンバーです。
C
- 計算済メンバーです。
この表には、すべてのディメンション・メンバーとすべてのレベルが含められます。ディメンション表を作成するには、ディメンションのHIERARCHY句を使用しないでディメンションを指定します。
階層表には、ディメンション表のすべての列に加えて、親メンバーの列と各ソース・レベルの列が含まれています。ディメンション表と同様のMEMBER_TYPE
列も含まれます。指定された階層に含まれないディメンション・メンバーとレベルはすべて、表から除外されます。階層表を作成する場合は、ディメンションのHIERARCHY句を使用してディメンションを指定します。
CUBE_TABLE
は表ファンクションであり、SELECT
文のコンテキストで常に次の構文で使用されます。
SELECT ... FROM TABLE(CUBE_TABLE('arg'));
関連項目: ディメンション・オブジェクトの詳細およびCUBE_TABLE で生成される表の詳細は、『Oracle OLAPユーザーズ・ガイド』を参照してください。 |
例
次の例では、OLAPオプションが指定されたOracle DatabaseおよびGLOBAL
サンプル・スキーマが必要です。GLOBAL
サンプル・スキーマのダウンロードおよびインストールの詳細は、『Oracle OLAPユーザーズ・ガイド』を参照してください。
次のSELECT
文は、GLOBAL
スキーマのCHANNEL
のディメンション表を生成します。
SELECT dim_key, level_name, long_description, channel_total_id tot_id, channel_channel_id chan_id, channel_long_description chan_desc, total_long_description tot_desc FROM TABLE(CUBE_TABLE('global.channel')); DIM_KEY LEVEL_NAME LONG_DESCRIPTION TOT_ID CHAN_ID CHAN_DESC TOT_DESC ----------- ---------- ---------------- ------ ------- ------------ ------------- CHANNEL_CAT CHANNEL Catalog TOTAL CAT Catalog Total Channel CHANNEL_DIR CHANNEL Direct Sales TOTAL DIR Direct Sales Total Channel CHANNEL_INT CHANNEL Internet TOTAL INT Internet Total Channel TOTAL_TOTAL TOTAL Total Channel TOTAL Total Channel
次の文は、UNITS_CUBE
のキューブ表を生成します。この文は、表をMARKET
階層およびCALENDAR
階層に制限します。
SELECT sales, units, cost, time, customer, product, channel FROM TABLE(CUBE_TABLE('global.units_cube HIERARCHY customer market HIERARCHY time calendar')) WHERE rownum < 20; SALES UNITS COST TIME CUSTOMER PRODUCT CHANNEL ---------- ---------- ---------- -------------------------- -------------- ----------- ----------- 24538587.9 61109 22840853.7 CALENDAR_QUARTER_CY1998.Q1 TOTAL_TOTAL TOTAL_TOTAL TOTAL_TOTAL 24993273.3 61320 23147171 CALENDAR_QUARTER_CY1998.Q2 TOTAL_TOTAL TOTAL_TOTAL TOTAL_TOTAL 25080541.4 65265 23242535.4 CALENDAR_QUARTER_CY1998.Q3 TOTAL_TOTAL TOTAL_TOTAL TOTAL_TOTAL 26258474 66122 24391020.6 CALENDAR_QUARTER_CY1998.Q4 TOTAL_TOTAL TOTAL_TOTAL TOTAL_TOTAL 32785170 77589 30607218.1 CALENDAR_QUARTER_CY1999.Q1 TOTAL_TOTAL TOTAL_TOTAL TOTAL_TOTAL . . .