プライマリ・コンテンツに移動
Oracle® OLAP DML Reference
12c Release 1 (12.1)
B71310-04
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

B DBMS_AW PL/SQLパッケージ

DBMS_AW PL/SQLパッケージには、アナリティック・ワークスペースを操作するためのプロシージャおよびファンクションが含まれています。

この付録は、次の項目に分かれています。

アナリティック・ワークスペースの管理

Oracle OLAPの操作を行うには、セッションにアナリティック・ワークスペースをアタッチする必要があります。DBMS_AW PL/SQLパッケージがインストールされている場合、SQL*Plusからこのタスクを実行できます。たとえば、次のコマンドを使用して、読取り専用アクセスでアナリティック・ワークスペースをアタッチすることが可能です。

EXECUTE dbms_aw.aw_attach ('awname');

各アナリティック・ワークスペースは、アナリティック・ワークスペースのリストに関連付けられています。読取り専用ワークスペースEXPRESS.AW(OLAPエンジン・コードを含む)は常に、このリストで最後にアタッチされます。ワークスペースを作成すると、デフォルトでこのリストの最初にアタッチされます。

FIRSTLASTなどのキーワードを使用して、リスト内のアナリティック・ワークスペースの位置を変更できます。たとえば、次のコマンドは、MYAW.TEST2というアナリティック・ワークスペースをリストの2番目の位置から1番目の位置に移動する方法を示しています。

EXECUTE dbms_aw.execute ('AW LIST');

TEST1 R/O UNCHANGED GLOBAL.TEST1 
TEST2 R/O UNCHANGED GLOBAL.TEST2 
EXPRESS R/O UNCHANGED SYS.EXPRESS 

EXECUTE dbms_aw.aw_attach ('test2', FALSE, FALSE, 'FIRST');
EXECUTE dbms_aw.execute ('AW LIST');

TEST2 R/O UNCHANGED GLOBAL.TEST2 
TEST1 R/O UNCHANGED GLOBAL.TEST1 
EXPRESS R/O UNCHANGED SYS.EXPRESS 

SQL*Plusから、ワークスペースの名前を変更したり、ワークスペースのコピーを作成したりできます。読取り/書込みアクセスでアナリティック・ワークスペースをアタッチした場合、そのワークスペースを更新して、ワークスペースが格納されている永続データベース表に変更内容を保存できます。ワークスペースの変更内容をデータベース内に保存するには、SQL COMMITを実行する必要があります。

次のコマンドでは、ワークスペースtest2のオブジェクトおよびデータのコピーをtest3という新しいワークスペースに作成し、test3を更新して、変更内容をデータベースにコミットしています。

EXECUTE dbms_aw.aw_copy('test2', 'test3');
EXECUTE dbms_aw.aw_update('test3');
COMMIT;

SQL文へのOLAP DMLの埋込み

DBMS_AWパッケージにより、アナリティック・ワークスペース内であらゆるOLAP処理を実行できます。レガシー・ワークスペース、リレーショナル表またはフラット・ファイルから、データのインポートが可能です。OLAPオブジェクトの定義や、複雑な計算の実行もできます。


注意:

DBMS_AWパッケージを使用してアナリティック・ワークスペースを一から作成する場合、特定の構造のアナリティック・ワークスペースを必要とするOLAPユーティリティ(Analytic Workspace ManagerやDBMS_AW集計アドバイザなど)を使用できないことがあります。

OLAP DMLコマンドの実行方法

DBMS_AWパッケージには、非定型のOLAP DMLコマンドを実行するためのプロシージャが含まれています。EXECUTEプロシージャかINTERP_SILENTプロシージャ、またはINTERPファンクションかINTERCLOBファンクションを使用して、単一のOLAP DMLコマンドまたはセミコロンで区切られた一連のコマンドを実行できます。

使用するプロシージャは、出力の送信方法、および入力バッファと出力バッファのサイズによって異なります。たとえば、EXECUTEプロシージャは出力をプリンタ・バッファに送信し、INTERP_SILENTプロシージャは出力を抑止、INTERPファンクションはセッション・ログを返します。

また、DBMS_AWパッケージには、OLAP式を評価するためのファンクションも含まれています。EVAL_TEXTファンクションはテキスト式の結果を返し、EVAL_NUMBERは数式の結果を返します。


注意:

DBMS_AWEVAL_NUMBERファンクションおよびEVAL_TEXTファンクションを、SQLのOLAP_EXPRESSIONファンクションと混同しないでください。詳細は、「OLAP_EXPRESSION」を参照してください。

OLAP DMLコマンドで引用符を使用する場合のガイドライン

SQLプロセッサは、処理する埋込みOLAP DMLコマンドをOracle OLAPへ送信する前に、そのコマンドの全体または一部を評価します。DBMS_AWプロシージャのolap-commandsパラメータでOLAP DMLコマンドの書式を設定する際には、次のガイドラインに従ってください。

  • OLAP DMLコマンドで通常であれば一重引用符(')を使用する箇所は必ず、2つの一重引用符('')を使用します。SQLプロセッサにより、OLAP DMLコマンドをOracle OLAPに送信する前に、一重引用符が1つ削除されます。

  • OLAP DMLでは、二重引用符(")はコメントの開始を示します。

スパーシティ・アドバイザの使用

データは、稠密、スパース、非常にスパースのいずれであるかに応じて、様々な形式でアナリティック・ワークスペースに格納できます。スパース性アドバイザはDBMS_AWのサブプログラムのグループであり、これを使用して、リレーショナル・ソース・データを分析し、そのデータをアナリティック・ワークスペースに格納する際の推奨事項を取得できます。

アナリティック・ワークスペースにおけるデータ格納オプション

アナリティック・ワークスペースでは、ディメンション・メンバーの組合せごとに1つのセルを割り当てる多次元形式でデータを分析および操作します。セルには、データ値またはNA(NULL)を含めることができます。セルのサイズは、その内容に関係なく、データ型によって定義されますが、たとえば、DECIMAL変数の各セルは8バイトです。

変数は、稠密(データ値を持つセルを30%以上含む)またはスパース(データ値が30%未満)のいずれかとなります。ほとんどの変数はスパースであり、その多くが非常にスパースです。

データは分析用の多次元形式で保存することもできますが、他の方法を使用してスパースな変数を格納することにより、ディスク領域を効率よく使用してパフォーマンスを向上させることが可能です。スパースなデータは、コンポジット・ディメンションで定義される変数に格納できます。コンポジットは、そのメンバーとして、データの存在するディメンション値の組合せ(タプルと呼ばれる)を持ちます。コンポジットによってディメンション化された変数にデータ値が追加されると、コンポジット・タプルが作成されます。コンポジット・ディメンションは、1つ以上のスパースなデータ変数を格納する索引で、スパースなデータを稠密に格納します。非常にスパースなデータは、圧縮コンポジットで定義された変数に格納でき、圧縮コンポジットでは、通常のコンポジットとは異なるアルゴリズムを使用してデータが格納されます。

最適なデータ格納方法の選択

次元データとは対照的に、リレーショナル・データは、実際のデータ値についてのみ行を持つ非常にコンパクトな形式の表に格納されます。アナリティック・ワークスペースを設計する際、ソース・データのスパース性を手動で識別して最適な格納方法を決定するのが難しい場合があります。スパース性アドバイザにより、リレーショナル表のソース・データが分析され、格納方法がお薦めされます。推奨事項には、データ変数のパーティション化およびコンポジットの定義も含まれます。

スパース性アドバイザは、次のプロシージャとファンクションから構成されます。


SPARSITY_ADVICE_TABLEプロシージャ
ADD_DIMENSION_SOURCEプロシージャ
ADVISE_SPARSITYプロシージャ
ADVISE_DIMENSIONALITYファンクション
ADVISE_DIMENSIONALITYプロシージャ

また、スパース性アドバイザは、分析されるファクトのディメンションに関する情報を格納するためのパブリックな表型も提供します。表型の定義には、次の3つのオブジェクトが使用されます。


DBMS_AW$_COLUMNLIST_T
DBMS_AW$_DIMENSION_SOURCE_T
DBMS_AW$_DIMENSION_SOURCES_T

次のSQL DESCRIBE文は、オブジェクト定義を示しています。

DESCRIBE dbms_aw$_columnlist_t
dbms_aw$_columnlist_t TABLE OF VARCHAR2(100)
 
DESCRIBE dbms_aw$_dimension_source_t
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 DIMNAME                                            VARCHAR2(100)
 COLUMNNAME                                         VARCHAR2(100)
 SOURCEVALUE                                        VARCHAR2(32767)
 DIMTYPE                                            NUMBER(3)
 HIERCOLS                                           DBMS_AW$_COLUMNLIST_T
 PARTBY                                             NUMBER(9)

DESCRIBE dbms_aw$_dimension_sources_t
dbms_aw$_dimension_sources_t TABLE OF DBMS_AW$_DIMENSION_SOURCE_T

スパーシティ・アドバイザの使用

スパース性アドバイザを使用するには、次の手順を実行します。

  1. SPARSITY_ADVICE_TABLEをコールして、スパース性アドバイザの評価を格納する表を作成します。

  2. 1つ以上の列によって評価対象のファクト表に関連付けられた各ディメンションについて、ADD_DIMENSION_SOURCEをコールします。

    これらのディメンションについて入力した情報は、DBMS_AW$_DIMENSION_SOURCES_T変数に格納されます。

  3. ADVISE_SPARSITYをコールして、ファクト表を評価します。

    その推奨事項は、SPARSITY_ADVICE_TABLEにより作成された表に格納されます。これらの推奨事項を使用して、アナリティック・ワークスペースでの変数の定義について判断を下すか、または次の手順を続行できます。

  4. ADVISE_DIMENSIONALITYプロシージャをコールして、推奨されるコンポジット、パーティション化、変数の定義について、OLAP DMLオブジェクト定義を取得します。

    または

    ADVISE_DIMENSIONALITYファンクションを使用して、推奨されるコンポジットおよび特定のパーティションの変数定義に関するディメンションの順序について、OLAP DMLオブジェクト定義を取得します。

例: GLOBALスキーマでのスパース性の評価

例B-1「スパース性アドバイザのGLOBAL用スクリプト」に、GLOBALスキーマでUNITS_HISTORY_FACT表のスパース性を評価するためのSQLスクリプトを示します。GLOBALアナリティック・ワークスペースでは、UNITS_HISTORY_FACTがUnitsキューブを定義し、UNITS変数のソースとなります。UNITS_HISTORY_FACTは、4つのディメンション表からの外部キーで構成される主キーを持つファクト表です。5番目の列には、売上数量のファクトが含まれています。

CHANNEL_DIM表とCUSTOMER_DIM表には、基本的なスター構成のチャネルおよび顧客ディメンションの情報がすべて含まれます。スノーフレーク構成の3つの表により、時間ディメンションのデータとしてMONTH_DIMQUARTER_DIMおよびYEAR_DIMが提供されます。PRODUCT_CHILD_PARENT表は、親子表であり、製品ディメンションを定義します。

例B-1 スパース性アドバイザのGLOBAL用スクリプト

CONNECT global/global
SET ECHO ON
SET LINESIZE 300
SET PAGESIZE 300
SET SERVEROUT ON FORMAT WRAPPED
 
-- Define and initialize an advice table named AW_SPARSITY_ADVICE
BEGIN
     dbms_aw.sparsity_advice_table();
EXCEPTION
     WHEN OTHERS THEN NULL;
END;
/
 
TRUNCATE TABLE aw_sparsity_advice;
 
DECLARE
     dimsources dbms_aw$_dimension_sources_t;
     dimlist VARCHAR2(500);
     sparsedim VARCHAR2(500);
     defs CLOB;
BEGIN
-- Provide information about all dimensions in the cube
     dbms_aw.add_dimension_source('channel', 'channel_id', dimsources, 
         'channel_dim', dbms_aw.hier_levels,
          dbms_aw$_columnlist_t('channel_id', 'total_channel_id'));
     dbms_aw.add_dimension_source('product', 'item_id', dimsources, 
          'product_child_parent', dbms_aw.hier_parentchild, 
           dbms_aw$_columnlist_t('product_id', 'parent_id'));
     dbms_aw.add_dimension_source('customer', 'ship_to_id', dimsources,
         'customer_dim', dbms_aw.hier_levels,
          dbms_aw$_columnlist_t('ship_to_id', 'warehouse_id', 'region_id',
               'total_customer_id'));
     dbms_aw.add_dimension_source('time', 'month_id', dimsources,
           'SELECT m.month_id, q.quarter_id, y.year_id
                FROM time_month_dim m, time_quarter_dim q, time_year_dim y
                WHERE m.parent=q.quarter_id AND q.parent=y.year_id',
            dbms_aw.hier_levels, 
            dbms_aw$_columnlist_t('month_id', 'quarter_id', 'year_id'));
 
-- Analyze fact table and provide advice without partitioning
     dbms_aw.advise_sparsity('units_history_fact', 'units_cube', 
          dimsources, dbms_aw.advice_default, dbms_aw.partby_none);
 
COMMIT;
 
-- Generate OLAP DML for composite and variable definitions
dimlist := dbms_aw.advise_dimensionality('units_cube', sparsedim, 
           'units_cube_composite');
dbms_output.put_line('Dimension list:  ' || dimlist);
dbms_output.put_line('Sparse dimension:  ' || sparsedim);
dbms_aw.advise_dimensionality(defs, 'units_cube');
dbms_output.put_line('Definitions:  ');
dbms_aw.printlog(defs);
 
END;
/

サンプル・プログラムからのアドバイス

例B-1「スパース性アドバイザのGLOBAL用スクリプト」のスクリプトで次の情報が生成されます。

Dimension list:  <channel units_cube_composite<product customer time>>
Sparse dimension:  DEFINE units_cube_composite COMPOSITE <product customer time>
Definitions:
DEFINE units_cube.cp COMPOSITE <product customer time>
DEFINE units_cube NUMBER VARIABLE <channel units_cube.cp<product customer time>>
PL/SQL procedure successfully completed.

AW_SPARSITY_ADVICE表に格納される情報

このSQL SELECT文により、推奨されるOLAP DMLオブジェクト定義の基礎である、AW_SPARSITY_ADVICE表の列の一部が表示されます。

SELECT fact, dimension, dimcolumn, membercount nmem, leafcount nleaf, 
     advice, density
     FROM aw_sparsity_advice
     WHERE cubename='units_cube';
 

この問合せは、次の結果セットを返します。

FACT                 DIMENSION    DIMCOLUMN     NMEM  NLEAF ADVICE        DENSITY
-------------------- ------------ ------------ ----- ------ ------------ --------
units_history_fact   channel      channel_id       3      3 DENSE          .46182
units_history_fact   product      item_id         48     36 SPARSE         .94827
units_history_fact   customer     ship_to_id      61     61 SPARSE         .97031
units_history_fact   time         month_id        96     79 SPARSE         .97664

集計アドバイザの使用

アナリティック・ワークスペースでの集計データの管理は、パフォーマンスに大きく影響することがあります。DBMS_AWパッケージのADVISE_RELプロシージャおよびADVISE_CUBEプロシージャを使用すると、事前集計するディメンション・メンバーの最適な組合せを決定できます。これらのプロシージャは、集計アドバイザとして知られています。

指定した割合に基づき、ADVISE_RELは事前集計するディメンション・メンバーのセットを提示します。ADVISE_CUBEは、キューブの各ディメンションについてメンバーのセットを提示します。

ワークスペースの集計機能

集計データを格納する手順は、aggmapというアナリティック・ワークスペース・オブジェクトで指定されます。OLAP DML AGGREGATEコマンドは、aggmapを使用してデータを事前計算します。事前集計されないデータは、データの問合せ時にAGGREGATEファンクションで動的に集計されます。

静的な集計と動的な集計のバランスの選択は、ディスク領域、使用可能なメモリー、データに対して実行される問合せの特性と頻度など、多くの要素によって異なります。これらの要素を検討して、事前集計するデータの割合を決定します。

事前集計するデータの割合を決定したら、集計アドバイザを使用できます。これらのプロシージャで、階層内のディメンション・メンバーの分布を分析し、事前集計するディメンション・メンバーの最適な組合せを特定します。

例: ADVISE_RELプロシージャの使用

指定した事前計算の割合に基づいて、ADVISE_RELプロシージャは、すべての階層関係を持つディメンションを表すファミリ・リレーションを分析し、ディメンション・メンバーのリストを返します。

ADVISE_CUBEは、キューブのaggmapで各ディメンションに同様の経験則を適用します。

例B-2では、次に示す顧客ディメンションのサンプルを使用して、ADVISE_RELプロシージャを説明します。

サンプル・ディメンション: Globalアナリティック・ワークスペースの顧客

GLOBAL_AW.GLOBALの顧客ディメンションには、4つのレベルを持つSHIPMENTS_ROLLUPと3つのレベルを持つMARKET_ROLLUPの2つの階層があります。ディメンションは106のメンバーを持ちます。この数には、各レベルの全メンバーおよびすべてのレベル名が含まれています。

顧客ディメンションのメンバーは、テキスト値が詳細な説明および簡単な説明で定義された整数キーです。

次のOLAP DMLコマンドは、データベースの標準形式である顧客ディメンションの表現に関する情報を示しています。

SET serveroutput ON
---- Number of members of Customer dimension
EXECUTE dbms_aw.execute('SHOW STATLEN(customer)')
106

---- Hierarchies in Customer dimension;
EXECUTE dbms_aw.execute('REPORT W 40 customer_hierlist');
CUSTOMER_HIERLIST
----------------------------------------
MARKET_ROLLUP
SHIPMENTS_ROLLUP

---- Levels in Customer dimension
EXECUTE dbms_aw.execute('REPORT W 40 customer_levellist');

CUSTOMER_LEVELLIST
----------------------------------------
TOTAL_CUSTOMER
REGION
WAREHOUSE
TOTAL_MARKET
MARKET_SEGMENT
ACCOUNT
SHIP_TO
---- Levels in each hierarchy from leaf to highest
EXECUTE dbms_aw.execute('REPORT W 20 customer_hier_levels');
 
CUSTOMER_HIERL
IST            CUSTOMER_HIER_LEVELS
-------------- --------------------
SHIPMENTS      SHIP_TO
               WAREHOUSE
               REGION
               TOTAL_CUSTOMER
MARKET_SEGMENT SHIP_TO
               ACCOUNT
               MARKET_SEGMENT
               TOTAL_MARKET

---- Parent relation showing parent-child relationships in the Customer dimension
---- Only show the last 20 members
EXECUTE dbms_aw.execute('LIMIT customer TO LAST 20');
EXECUTE dbms_aw.execute('REPORT W 10 DOWN customer W 20 customer_parentrel');

           -----------CUSTOMER_PARENTREL------------
           ------------CUSTOMER_HIERLIST------------
CUSTOMER      MARKET_ROLLUP       SHIPMENTS_ROLLUP
---------- -------------------- --------------------
103        44                   21
104        45                   21
105        45                   21
106        45                   21
7          NA                   NA
1          NA                   NA
8          NA                   1
9          NA                   1
10         NA                   1
11         NA                   8
12         NA                   10
13         NA                   9
14         NA                   9
15         NA                   8
16         NA                   9
17         NA                   8
18         NA                   8
19         NA                   9
20         NA                   9
21         NA                   10

---- Show text descriptions for the same twenty dimension members 
EXECUTE dbms_aw.execute('REPORT W 15 DOWN customer W 35 ACROSS customer_hierlist: <customer_short_description>');
ALL_LANGUAGES: AMERICAN_AMERICA
                ---------------------------CUSTOMER_HIERLIST---------------------------
                -----------MARKET_ROLLUP----------- ---------SHIPMENTS_ROLLUP----------
CUSTOMER            CUSTOMER_SHORT_DESCRIPTION          CUSTOMER_SHORT_DESCRIPTION
--------------- ----------------------------------- -----------------------------------
103             US Marine Svcs Washington           US Marine Svcs Washington
104             Warren Systems New York             Warren Systems New York
105             Warren Systems Philladelphia        Warren Systems Philladelphia
106             Warren Systems Boston               Warren Systems Boston
7               Total Market                        NA
1               NA                                  All Customers
8               NA                                  Asia Pacific
9               NA                                  Europe
10              NA                                  North America
11              NA                                  Australia
12              NA                                  Canada
13              NA                                  France
14              NA                                  Germany
15              NA                                  Hong Kong
16              NA                                  Italy
17              NA                                  Japan
18              NA                                  Singapore
19              NA                                  Spain
20              NA                                  United Kingdom
21              NA                                  United States

例B-2 ADVISE_REL: 推奨される顧客ディメンションの事前集計

この例では、サンプル・ディメンション: Globalアナリティック・ワークスペースの顧客で説明したGLOBAL顧客ディメンションを使用しています。

次のPL/SQL文は、顧客ディメンションの25%を事前集計することを前提としています。ADVISE_RELは、値セットで推奨されるメンバーのセットを返します。

SET serveroutput ON
EXECUTE dbms_aw.execute('AW ATTACH global_aw.global');
EXECUTE dbms_aw.execute('DEFINE customer_preagg VALUESET customer');
EXECUTE dbms_aw.advise_rel('customer_parentrel', 'customer_preagg', 25);
EXECUTE dbms_aw.execute('SHOW VALUES(customer_preagg)');
31
2
4
5
6
7
1
8
9
20
21

返される顧客メンバーと、説明文、関連するレベルおよび階層は、次に示すとおりです。

顧客メンバー 説明 階層 レベル
31 Kosh Enterprises MARKET_ROLLUP ACCOUNT
2 Consulting MARKET_ROLLUP MARKET_SEGMENT
4 Government MARKET_ROLLUP MARKET_SEGMENT
5 製造業 MARKET_ROLLUP MARKET_SEGMENT
6 Reseller MARKET_ROLLUP MARKET_SEGMENT
7 TOTAL_MARKET MARKET_ROLLUP TOTAL_MARKET
1 TOTAL_CUSTOMER SHIPMENTS_ROLLUP TOTAL_CUSTOMER
8 Asia Pacific SHIPMENTS_ROLLUP REGION
9 Europe SHIPMENTS_ROLLUP REGION
20 United Kingdom SHIPMENTS_ROLLUP WAREHOUSE
21 United States SHIPMENTS_ROLLUP WAREHOUSE

DBMS_AWサブプログラムの概要

次の表は、DBMS_AWに含まれるサブプログラムを示しています。

表B-1 DBMS_AWサブプログラム

サブプログラム 説明

ADD_DIMENSION_SOURCEプロシージャ


DBMS_AW$_DIMENSION_SOURCES_Tという表型に、キューブのディメンションに関するパラメータで提供される情報を移入する。

ADVISE_CUBEプロシージャ


指定したキューブ・データの割合に基づいて、キューブの事前集計方法を提示する。

ADVISE_DIMENSIONALITYファンクション


推奨されるキューブのコンポジット定義およびディメンションの順序を返す。

ADVISE_DIMENSIONALITYプロシージャ


推奨されるキューブのコンポジットおよびメジャーを定義するOLAP DMLコマンドを生成する。

ADVISE_PARTITIONING_DIMENSIONファンクション


スパース性アドバイザによってパーティション化されたディメンションを識別する。

ADVISE_PARTITIONING_LEVELファンクション


ディメンションのパーティション化を行う際にスパース性アドバイザで使用されるレベルを返す。

ADVISE_RELプロシージャ


指定したディメンション・メンバーの割合に基づいて、ディメンションの事前集計方法を提示する。

ADVISE_SPARSITYプロシージャ


スパース性についてファクト表を分析し、その分析結果を表に移入する。

AW_ATTACHプロシージャ


アナリティック・ワークスペースをセッションにアタッチする。

AW_COPYプロシージャ


新しいアナリティック・ワークスペースを作成し、別のアナリティック・ワークスペースのオブジェクト定義およびデータを移入する。

AW_CREATEプロシージャ


空のアナリティック・ワークスペースを新規作成する。

AW_DELETEプロシージャ


アナリティック・ワークスペースを削除する。

AW_DETACHプロシージャ


アナリティック・ワークスペースをセッションからデタッチする。

AW_RENAMEプロシージャ


アナリティック・ワークスペースの名前を変更する。

AW_TABLESPACEファンクション


特定のアナリティック・ワークスペースが格納される表領域の名前を返す。

AW_UPDATEプロシージャ


アナリティック・ワークスペースに対する変更を保存する。

CONVERTプロシージャ


アナリティック・ワークスペースの格納フォーマットを9iから10gに変換する。

EVAL_NUMBERファンクション


アナリティック・ワークスペースの数式の結果を返す。

EVAL_TEXTファンクション


アナリティック・ワークスペースのテキスト式の結果を返す。

EXECUTEプロシージャ


1つ以上のOLAP DMLコマンドを実行する。入力および出力は4Kに制限されます。通常、アナリティック・ワークスペースを使用する対話型セッションで使用される。

GETLOGファンクション


最近実行したINTERPファンクションまたはINTERPCLOBファンクションのセッション・ログを返す。

INFILEプロシージャ


ファイルで指定されたOLAP DMLコマンドを実行する。

INTERPファンクション


1つ以上のOLAP DMLコマンドを実行する。入力は4K、出力は4Gに制限される。通常、EXECUTEプロシージャの出力制限4Kを超える出力が必要な場合にアプリケーションで使用される。

INTERPCLOBファンクション


1つ以上のOLAP DMLコマンドを実行する。入力および出力は4Gに制限される。通常、INTERPファンクションの入力制限4Kを超える入力が必要な場合にアプリケーションで使用される。

INTERP_SILENTプロシージャ


1つ以上のOLAP DMLコマンドを実行し、出力を抑止する。入力は4K、出力は4Gに制限される。

OLAP_ONファンクション


OLAPオプションがデータベースにインストールされているかどうかを示すブールを返す。

OLAP_RUNNINGファンクション


OLAPオプションが現行のセッションで初期化されているかどうかを示すブールを返す。

PRINTLOGプロシージャ


INTERPINTERCLOBまたはGETLOGファンクションによって返されたセッション・ログを印刷する。

RUNプロシージャ


1つ以上のOLAP DMLコマンドを実行する。

SHUTDOWNプロシージャ


現行のOLAPセッションを停止する。

SPARSITY_ADVICE_TABLEプロシージャ


ADVISE_SPARSITYプロシージャで分析結果の格納に使用される表を作成する。

STARTUPプロシージャ


ユーザー定義のアナリティック・ワークスペースをアタッチせずにOLAPセッションを開始する。


ADD_DIMENSION_SOURCEプロシージャ

ADD_DIMENSION_SOURCEプロシージャは、DBMS_AW$_DIMENSION_SOURCES_Tという表型に、キューブのディメンションに関する情報を移入します。この情報は、ADVISE_SPARSITYプロシージャによって分析されます。


注意:

OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

ADD_DIMENSION_SOURCE ( 
          dimname  IN      VARCHAR2,
          colname  IN      VARCHAR2,
          sources  IN OUT  dbms_aw$_dimension_sources_t,
          srcval   IN      VARCHAR2     DEFAULT NULL,
          dimtype  IN      NUMBER       DEFAULT NO_HIER,
          hiercols IN      columnlist_t DEFAULT NULL,
          partby   IN      NUMBER       DEFAULT PARTBY_DEFAULT);

パラメータ

表B-2 ADD_DIMENSION_SOURCEプロシージャのパラメータ

パラメータ 説明

dimname

ディメンションの名前。明確にするため、アナリティック・ワークスペースのディメンションの論理名を使用する。

colname

dimnameのディメンション・メンバーにマップするファクト表の列の名前。

sources

DBMS_AW$_DIMENSION_SOURCES_Tのデータ型で定義されるオブジェクト(PL/SQL変数など)の名前。他のパラメータによって提供される情報を格納する際に使用する。

srcval

ディメンション表の名前、またはディメンションを定義する列を返すSQL文。このパラメータを省略した場合、colnameが使用される。

dimtype

次に示す階層の型の1つ。


DBMS_AW.HIER_LEVELS: レベルベース階層
DBMS_AW.HIER_PARENTCHILD: 親子階層
DBMS_AW.MEASURE: メジャー・ディメンション
DBMS_AW.NO_HIER: 階層なし

hiercols

階層を定義する列の名前。

レベルベース階層の場合、ベースレベルの列を最初に、最上位レベルの列を最後に指定する。ディメンションに複数の階層がある場合、予測で最も頻繁に使用する階層を選択し、この階層のレベルを定義する列のみを指定する。

親子階層の場合、子の列を最初に指定し、その後に親の列を指定する。

メジャー・ディメンションの場合、ディメンション・メンバーとなるファクト表の列を指定する。

partby

パーティション化を制御するキーワード。次の値のいずれかを使用する。

  • DBMS_AW.PARTBY_DEFAULT: スパース性アドバイザを使用して、このディメンションにパーティション化が適切であるかどうかを判断する。

  • DBMS_AW.PARTBY_NONE: このディメンションのパーティション化を許可しない。

  • DBMS_AW.PARTBY_FORCE: このディメンションのパーティション化を強制的に行う。

    重要: 複数のディメンションについては、強制的なパーティション化は行わない。

  • このディメンションについて作成するパーティションの数の整数値。


次のPL/SQLプログラムの抜粋は、スパース性アドバイザで使用されるTIMEディメンションに関する情報を示しています。このディメンションのソース・データは、TIME_DIMというディメンション表に格納されています。主キーの名前はMONTH_IDであり、ファクト表の外部キー列の名前もMONTH_IDです。ディメンション階層は、MONTH_ID列、QUARTER_ID列およびYEAR_ID列で定義されるレベルベースです。

このプログラムでは、情報を格納するために、DBMS_AW$_DIMENSION_SOURCES_Tの表型を持つDIMSOURCESというPL/SQL変数が宣言されています。

DECLARE
     dimsources dbms_aw$_dimension_sources_t;
BEGIN
     dbms_aw.add_dimension_source('time', 'month_id', dimsources, 
          'time_dim', dbms_aw.hier_levels,
          dbms_aw$_columnlist_t('month_id', 'quarter_id', 'year_id'));
                   .
                   .
                   .
END;
/

ADVISE_CUBEプロシージャ

ADVISE_CUBEプロシージャは、アナリティック・ワークスペースでキューブを事前集計する方法を決定する際に役立ちます。事前集計するキューブ・データの割合を指定すると、ADVISE_CUBEにより、キューブの各ディメンションの事前集計するメンバーのセットがお薦めされます。

ADVISE_CUBEプロシージャは、入力としてaggmapと事前計算の割合をとります。aggmapは、各RELATION文にPRECOMPUTE句を含む必要があります。PRECOMPUTE句は値セットで構成されます。指定した事前計算の割合に基づき、ADVISE_CUBEは各値セットのディメンション・メンバーの組合せを返します。


注意:

OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

ADVISE_CUBE ( 
          aggmap_name             IN   VARCHAR2,
          precompute_percentage   IN   INTEGER DEFAULT 20,
          compressed              IN   BOOLEAN DEFAULT FALSE);

パラメータ

表B-3 ADVISE_CUBEプロシージャのパラメータ

パラメータ 説明

aggmap_name

キューブに関連付けられたaggmapの名前。

aggmapの各RELATION文は、値セットを含むPRECOMPUTE句を持っている必要がある。ADVISE_CUBEは、各値セットのディメンション・メンバーのリストを返す。値セットが空でない場合、ADVISE_CUBEは新しい値を追加する前にその内容を削除する。

precompute_percentage

事前集計するキューブ・データの割合。デフォルトは20%。

圧縮

通常のコンポジット(FALSE)または圧縮コンポジット(TRUE)のいずれに関するアドバイスであるかを制御する。


この例では、ADVISE_CUBEプロシージャと、PRODUCTおよびTIMEでディメンション化されたUNITSというキューブについて説明します。ADVISE_CUBEは、キューブ・データの40%を事前集計する場合に必要なディメンションの組合せを返します。

SET SERVEROUTPUT ON
--- View valuesets
EXECUTE dbms_aw.execute('describe prodvals');
     DEFINE PRODVALS VALUESET PRODUCT
EXECUTE dbms_aw.execute('describe timevals');
     DEFINE TIMEVALS VALUESET TIME
--- View aggmap
EXECUTE dbms_aw.execute ('describe units_agg');
     DEFINE UNITS_AGG AGGMAP
          RELATION product_parentrel PRECOMPUTE (prodvals)
          RELATION time_parentrel PRECOMPUTE (timevals)
EXECUTE dbms_aw.advise_cube ('units_agg', 40);
 
---- The results are returned in the prodvals and timevals valuesets

ADVISE_DIMENSIONALITYファンクション

ADVISE_DIMENSIONALITYファンクションは、特定のパーティションについてADVISE_SPARSITYプロシージャにより生成されたスパース性の推奨事項に基づき、キューブ内の変数のディメンション順序およびコンポジット・ディメンションのOLAP DML定義を返します。


注意:

OLAPワークシート内からはこのファンクションを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

ADVISE_DIMENSIONALITY ( 
          cubename   IN     VARCHAR2,
          sparsedfn  OUT    VARCHAR2
          sparsename IN     VARCHAR2 DEFAULT NULL,
          partnum    IN     NUMBER DEFAULT 1,
          advtable   IN     VARCHAR2 DEFAULT NULL)
     RETURN VARCHAR2;

パラメータ

表B-4 ADVISE_DIMENSIONALITYファンクションのパラメータ

パラメータ 説明

cubename

ADVISE_SPARSITYへのコールで提供されるものと同一のcubename値。

sparsedfn

コンポジット・ディメンションの定義が格納されるオブジェクト(PL/SQL変数など)の名前。

sparsename

コンポジットのオブジェクト名。デフォルト値はcubename.cp

partnum

パーティションの数。デフォルトでは、最初のパーティションの定義のみが表示される。

advtable

分析結果を格納するためにSPARSITY_ADVICE_TABLEプロシージャで作成される表の名前。


次のPL/SQLプログラムの抜粋では、ADVISE_DIMENSIONALITYファンクションで返される推奨事項を格納する2つの変数を定義しています。SPARSEDIMは推奨されるコンポジットの定義を格納し、DIMLISTはキューブの推奨されるディメンションの順序を格納します。

DECLARE
     sparsedim VARCHAR2(500);
     dimlist VARCHAR2(500);
BEGIN
-- Calls to ADD_DIMENSION_SOURCE and ADVISE_SPARSITY omitted here
          .
          .
          .
dimlist := dbms_aw.advise_dimensionality('units_cube', sparsedim);
dbms_output.put_line('Sparse dimension:  ' || sparsedim);
dbms_output.put_line('Dimension list:  ' || dimlist);
END;
/

このプログラムでは、DBMS_OUTPUT.PUT_LINEを使用して分析結果を表示します。スパース性アドバイザにより、スパースなディメンションであるPRODUCTCUSTOMERおよびTIMEに対してコンポジット・ディメンションがお薦めされます。UNITS_CUBEの推奨されるディメンションの順序は、CHANNELの後にこのコンポジットが続きます。

Sparse dimension:  DEFINE units_cube.cp COMPOSITE <product customer time>
Dimension list:  channel units_cube.cp<product customer time>

次の例では、スパース性アドバイザを使用して、Sales Historyというサンプル・スキーマのSALES表を評価します。WHILEループにより、すべてのパーティションの推奨事項が表示されます。

DECLARE
     dimlist VARCHAR2(500);
     sparsedim VARCHAR2(500);
     counter NUMBER(2) := 1;
     maxpart NUMBER(2);
BEGIN
-- Calls to ADD_DIMENSION_SOURCE and ADVISE_SPARSITY omitted here
          .
          .
          .
 
SELECT MAX(partnum) INTO maxpart FROM sh_sparsity_advice;
WHILE counter <= maxpart LOOP
dimlist := dbms_aw.advise_dimensionality('sales_cube', sparsedim, 
   'sales_cube_composite', counter, 'sh_sparsity_advice');
dbms_output.put_line('Dimension list:  ' || dimlist);
dbms_output.put_line('Sparse dimension:  ' || sparsedim);
counter := counter+1;
END LOOP;
dbms_aw.advise_dimensionality(defs,'sales_cube', 'sales_cube_composite',
   'DECIMAL', 'sh_sparsity_advice');
dbms_output.put_line('Definitions:  ');
dbms_aw.printlog(defs);
END;
/

スパース性アドバイザでは11のパーティションがお薦めされ、最初の10のパーティションは同一のコンポジットを使用します。最後のパーティションは別のコンポジットを使用します。(SH_SPARSITY_ADVICE表には、TIME_IDが最後のパーティションでは稠密であるが、他のパーティションでは非常にスパースであることが示されます。)

Dimension list:  sales_cube_composite<time channel product promotion customer>
Sparse dimension:  DEFINE sales_cube_composite COMPOSITE COMPRESSED <time channel product promotion customer>
Dimension list:   sales_cube_composite<time channel product promotion customer>
Sparse dimension:  DEFINE sales_cube_composite COMPOSITE COMPRESSED <time channel product promotion customer>
                   .
                   .
                   .
Dimension list:  time sales_cube_composite<channel product promotion customer>
Sparse dimension:  DEFINE sales_cube_composite COMPOSITE COMPRESSED <channel product promotion customer>

ADVISE_DIMENSIONALITYプロシージャ

ADVISE_DIMENSIONALITYプロシージャは、ADVISE_SPARSITYプロシージャにより提供された情報を評価し、アナリティック・ワークスペースでコンポジットおよび変数を定義するためのOLAP DMLコマンドを生成します。


注意:

OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

ADVISE_DIMENSIONALITY ( 
          output     OUT    CLOB,
          cubename   IN     VARCHAR2,
          sparsename IN     VARCHAR2 DEFAULT NULL,
          dtype      IN     VARCHAR2 DEFAULT 'NUMBER',
          advtable   IN     VARCHAR2 DEFAULT NULL);

パラメータ

表B-5 ADVISE_DIMENSIONALITYプロシージャのパラメータ

パラメータ 説明

output

プロシージャの推奨事項が格納されるオブジェクト(PL/SQL変数など)の名前。

cubename

ADVISE_SPARSITYへのコールで提供されるものと同一のcubename値。

sparsename

サンプル・コンポジットのオブジェクト名。デフォルト値はcubename.cp

dtype

サンプルの変数のOLAP DMLデータ型。

advtable

分析結果を格納するためにSPARSITY_ADVICE_TABLEプロシージャで作成される表の名前。


次のPL/SQLプログラムの抜粋では、DEFSという変数を定義して、推奨される定義を格納しています。

DECLARE
     defs CLOB;
BEGIN
-- Calls to ADD_DIMENSION_SOURCE and ADVISE_SPARSITY omitted here
          .
          .
          .
dbms_aw.advise_dimensionality(defs, 'units_cube_measure_stored', 
     'units_cube_composite', 'DECIMAL');
dbms_output.put_line('Definitions:  ');
dbms_aw.printlog(defs);
END;
/

このプログラムでは、DBMS_OUTPUT.PUT_LINEプロシージャおよびDBMS_AW.PRINTLOGプロシージャを使用して、推奨されるオブジェクト定義を表示します。

Definitions:
DEFINE units_cube.cp COMPOSITE <product customer time>
DEFINE units_cube NUMBER VARIABLE <channel units_cube.cp<product customer time>>

小さくて稠密なGlobalスキーマとは対照的に、Sales Historyサンプル・スキーマのSalesキューブは大きくて非常にスパースであるため、スパース性アドバイザにより11のパーティションがお薦めされます。次の抜粋では、パーティション・テンプレートを定義し、様々なパーティションにTIMEディメンション・メンバーを移動するための、追加のOLAP DML定義の一部を示しています。

Definitions:
DEFINE sales_cube_composite_p1 COMPOSITE COMPRESSED <time channel product promotion customer>
DEFINE sales_cube_composite_p2 COMPOSITE COMPRESSED <time channel product promotion customer>
DEFINE sales_cube_composite_p3 COMPOSITE COMPRESSED <time channel product promotion customer>
DEFINE sales_cube_composite_p4 COMPOSITE COMPRESSED <time channel product promotion customer>
DEFINE sales_cube_composite_p5 COMPOSITE COMPRESSED <time channel product promotion customer>
DEFINE sales_cube_composite_p6 COMPOSITE COMPRESSED <time channel product promotion customer>
DEFINE sales_cube_composite_p7 COMPOSITE COMPRESSED <time channel product promotion customer>
DEFINE sales_cube_composite_p8 COMPOSITE COMPRESSED <time channel product promotion customer>
DEFINE sales_cube_composite_p9 COMPOSITE COMPRESSED <time channel product promotion customer>
DEFINE sales_cube_composite_p10 COMPOSITE COMPRESSED <time channel product promotion customer>
DEFINE sales_cube_composite_p11 COMPOSITE <channel product promotion customer>
DEFINE sales_cube_pt PARTITION TEMPLATE <time channel product promotion customer> -
  PARTITION BY LIST (time) -
   (PARTITION p1 VALUES () <sales_cube_composite_p1<>> -
    PARTITION p2 VALUES () <sales_cube_composite_p2<>> -
    PARTITION p3 VALUES () <sales_cube_composite_p3<>> -
    PARTITION p4 VALUES () <sales_cube_composite_p4<>> -
    PARTITION p5 VALUES () <sales_cube_composite_p5<>> -
    PARTITION p6 VALUES () <sales_cube_composite_p6<>> -
    PARTITION p7 VALUES () <sales_cube_composite_p7<>> -
    PARTITION p8 VALUES () <sales_cube_composite_p8<>> -
    PARTITION p9 VALUES () <sales_cube_composite_p9<>> -
    PARTITION p10 VALUES () <sales_cube_composite_p10<>> -
    PARTITION p11 VALUES () <time sales_cube_composite_p11<>>)
MAINTAIN sales_cube_pt MOVE TO PARTITION p1 -
   '06-JAN-98', '07-JAN-98', '14-JAN-98', '21-JAN-98', -
   '24-JAN-98', '28-JAN-98', '06-FEB-98', '07-FEB-98', -
   '08-FEB-98', '16-FEB-98', '21-FEB-98', '08-MAR-98', -
   '20-MAR-98', '03-JAN-98', '26-JAN-98', '27-JAN-98'
MAINTAIN sales_cube_pt MOVE TO PARTITION p1 -
   '31-JAN-98', '11-FEB-98', '12-FEB-98', '13-FEB-98', -
   '15-FEB-98', '17-FEB-98', '14-MAR-98', '18-MAR-98', -
   '26-MAR-98', '30-MAR-98', '05-JAN-98', '08-JAN-98', -
   '10-JAN-98', '16-JAN-98', '23-JAN-98', '01-FEB-98'
MAINTAIN sales_cube_pt MOVE TO PARTITION p1 -
   '14-FEB-98', '28-FEB-98', '05-MAR-98', '07-MAR-98', -
   '15-MAR-98', '19-MAR-98', '17-JAN-98', '18-JAN-98', -
   '22-JAN-98', '25-JAN-98', '03-FEB-98', '10-FEB-98', -
   '19-FEB-98', '22-FEB-98', '23-FEB-98', '26-FEB-98'
          .
          .
          .

ADVISE_PARTITIONING_DIMENSIONファンクション

ADVISE_PARTITIONING_DIMENSIONファンクションは、スパース性アドバイザによってパーティション化されたディメンションがある場合は、それを識別します。スパース性アドバイザによってキューブがパーティション化されていない場合はNULLを返します。


注意:

OLAPワークシート内からはこのファンクションを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

ADVISE_PARTITIONING_DIMENSION (
          cubename   IN  VARCHAR2,
          sources    IN  dbms_aw$_dimension_sources_t,
          advtable   IN  VARCHAR2 DEFAULT NULL)
     RETURN VARCHAR2;

パラメータ

表B-6 ADVISE_PARTITIONING_DIMENSIONファンクションのパラメータ

パラメータ 説明

cubename

ADVISE_SPARSITYへのコールで提供されるものと同一のcubename値。

sources

ADVISE_SPARSITYでの使用のためにADD_DIMENSION_SOURCEによって移入された、DBMS_AW$_DIMENSION_SOURCES_Tのデータ型で定義されるオブジェクト(PL/SQL変数など)の名前。

advtable

分析結果を格納するためにSPARSITY_ADVICE_TABLEプロシージャで作成される表の名前。


次のプログラムの抜粋は、スパース性アドバイザの使用後に結果を問い合せる際に使用するADVISE_PARTITIONING_DIMENSIONファンクションを示しています。

DECLARE
     dimsources dbms_aw$_dimension_sources_t;
BEGIN
-- Calls to ADD_DIMENSION_SOURCE and ADVISE_SPARSITY omitted here
     .
     .
     .
dbms_output.put_line('Partitioning Dimension: ' || 
     dbms_aw.advise_partitioning_dimension('units_cube', dimsources,
    'aw_sparsity_advice'));
END;
/

このプログラムでは、DBMS_OUTPUTを使用して、パーティション化ディメンション(この場合はTIMEディメンション)を表示します。

Partitioning Dimension: time

ADVISE_PARTITIONING_LEVELファンクション

ADVISE_PARTITIONING_LEVELファンクションは、ディメンションのパーティション化を行う際にスパース性アドバイザで使用されたレベルを返します。スパース性アドバイザによってキューブがディメンション化されていない場合はNULLを返し、ディメンション階層がレベルベースでない場合は例外が発生します。


注意:

OLAPワークシート内からはこのファンクションを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

ADVISE_PARTITIONING_LEVEL (
          cubename   IN  VARCHAR2,
          sources    IN  dbms_aw$_dimension_sources_t,
          advtable   IN  VARCHAR2 DEFAULT NULL)
     RETURN VARCHAR2;

パラメータ

表B-7 ADVISE_PARTITIONING_LEVELファンクションのパラメータ

パラメータ 説明

cubename

ADVISE_SPARSITYへのコールで提供されるものと同一のcubename値。

sources

ADVISE_SPARSITYでの使用のためにADD_DIMENSION_SOURCEによって移入された、DBMS_AW$_DIMENSION_SOURCES_Tのデータ型で定義されるオブジェクト(PL/SQL変数など)の名前。

advtable

分析結果を格納するためにSPARSITY_ADVICE_TABLEプロシージャで作成される表の名前。


次のプログラムの抜粋は、スパース性アドバイザの使用後に結果を問い合せる際に使用するADVISE_PARTITIONING_LEVELファンクションを示しています。

DECLARE
     dimsources dbms_aw$_dimension_sources_t;
BEGIN
-- Calls to ADD_DIMENSION_SOURCE and ADVISE_SPARSITY omitted here
     .
     .
     .
dbms_output.put_line('Partitioning Level: ' || 
     dbms_aw.advise_partitioning_level('units_cube', dimsources,
    'aw_sparsity_advice'));
END;
/

このプログラムでは、DBMS_OUTPUTを使用して、パーティション化レベル(この場合はYEAR)を表示します。

Partitioning Level: year

ADVISE_RELプロシージャ

ADVISE_RELプロシージャは、アナリティック・ワークスペースでディメンションを事前集計する方法を決定する際に役立ちます。事前集計するディメンションの割合を指定すると、ADVISE_RELによりディメンション・メンバーのセットがお薦めされます。

ADVISE_RELプロシージャは、入力として、ファミリ・リレーション、値セット、事前計算の割合をとります。ファミリ・リレーションは、ディメンションのメンバー間の階層関係を指定するオブジェクトです。値セットは、分析されるディメンションから定義する必要があります。指定した事前計算の割合に基づき、ADVISE_RELは値セットのディメンション・メンバーの組合せを返します。


注意:

OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

ADVISE_REL ( 
          family_relation_name    IN   VARCHAR2,
          valueset_name           IN   VARCHAR2,
          precompute_percentage   IN   INTEGER DEFAULT 20,
          compressed              IN   BOOLEAN DEFAULT FALSE);

パラメータ

表B-8 ADVISE_RELプロシージャのパラメータ

パラメータ 説明

family_relation_name

ディメンション、およびディメンション・メンバー間の階層関係を指定する、ファミリ・リレーションの名前。

valueset_name

プロシージャの結果を格納する値セットの名前。値セットは、ファミリ・リレーションのディメンションから定義する必要がある。値セットが空でない場合、ADVISE_RELは新しい値を追加する前にその内容を削除する。

precompute_percentage

事前集計するディメンションの割合。デフォルトは20%。

圧縮

通常のコンポジット(FALSE)または圧縮コンポジット(TRUE)のいずれに関するアドバイスであるかを制御する。


ADVISE_SPARSITYプロシージャ

ADVISE_SPARSITYプロシージャは、ADD_DIMENSION_SOURCEプロシージャで提供されるディメンションに関する情報を使用し、スパース性についてファクト表を分析します。SPARSITY_ADVICE_TABLEプロシージャで作成される表に、分析結果を移入します。


注意:

OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。

出力の説明

表B-9で、ADVISE_SPARSITYによって生成される情報を説明します。

表B-9 出力列の説明

データ型 NULL 説明

CUBENAME

VARCHAR2(100)

NOT NULL

ADVISE_SPARSITYへのコールに含まれるcubenameの値。通常は論理キューブの名前。

FACT

VARCHAR2(4000)

NOT NULL

ADVISE_SPARSITYへのコールに含まれるファクトの値。1つ以上のアナリティック・ワークスペース変数のソース・データを提供するファクト表の名前。

DIMENSION

VARCHAR2(100)

NOT NULL

キューブのディメンションの論理名。ADVISE_DIMENSIONALITYへのコールで記述されるディメンション。

DIMCOLUMN

VARCHAR2(100)


ディメンション表に関連するファクト(ソース・ファクト表)のディメンション列の名前。

DIMSOURCE

VARCHAR2(4000)


ディメンション表の名前。

MEMBERCOUNT

NUMBER(12,0)


全レベルのディメンション・メンバーの総数。

LEAFCOUNT

NUMBER(12,0)


リーフ(または最小集計)レベルのディメンション・メンバーの数。

ADVICE

VARCHAR2(10)

NOT NULL

ディメンションのスパース性の評価(DENSESPARSEまたはCOMPRESSED)。

POSITION

NUMBER(4,0)

NOT NULL

ディメンションの推奨される順序。

DENSITY

NUMBER(11,8)


他のディメンションと比較したスパース性を示す数。この数が大きくなるほど、ディメンションはスパースになる。

PARTNUM

NUMBER(6,0)

NOT NULL

PARTBY列およびPARTTOPS列で記述されるパーティションの数。パーティション化がお薦めされない場合、パーティションの最大数は1

PARTBY

CLOB


このパーティションに格納する必要のある全ディメンション・メンバーのリスト。このリストは、LONG設定のサイズを大幅に増やさないかぎり、SQL*Plusで切り捨てられる。

PARTTOPS

CLOB


このパーティションにおける最上位レベルのディメンション・メンバーのリスト。


構文

ADVISE_SPARSITY ( 
          fact       IN      VARCHAR2,
          cubename   IN      VARCHAR2,
          dimsources IN      dbms_aw$_dimension_sources_t,
          advmode    IN      BINARY_INTEGER DEFAULT ADVICE_DEFAULT,
          partby     IN      BINARY_INTEGER DEFAULT PARTBY_DEFAULT,
          advtable   IN      VARCHAR2 DEFAULT NULL);

パラメータ

表B-10 ADVISE_SPARSITYプロシージャのパラメータ

パラメータ 説明

fact

ソースのファクト表の名前。

cubename

アナリティック・ワークスペースの論理キューブの名前など、分析されるファクトの名前。

dimsources

ADD_DIMENSION_SOURCEプロシージャがキューブのディメンションに関する情報を格納するオブジェクト型の名前。

advmode

表示したいアドバイスのレベル。次の値のいずれかを選択する。


DBMS_AW.ADVICE_DEFAULT
DBMS_AW.ADVICE_FAST
DBMS_AW.ADVICE_FULL

partby

パーティション化を制御するキーワード。次の値のいずれかを使用する。

  • DBMS_AW.PARTBY_DEFAULT: スパース性アドバイザを使用して、パーティション化が適切であるかどうかを判断する。

  • DBMS_AW.PARTBY_NONE: パーティション化を許可しない。

  • DBMS_AW.PARTBY_FORCE: パーティション化を強制的に行う。

advtable

分析結果を格納するためにプロシージャで作成される表の名前。


次のPL/SQLプログラムの抜粋では、UNITS_HISTORY_FACT表のスパース性を分析しています。

DECLARE
     dimsources dbms_aw$_dimension_sources_t;
BEGIN
-- Calls to ADD_DIMENSION_SOURCE for each dimension in the cube
                .
                .
                .
     dbms_aw.advise_sparsity('units_history_fact', 'units_cube', dimsources, 
          dbms_aw.advice_default);
 
END;
/

次のSELECTコマンドは、分析結果を表示します。ここでは、1つの稠密なディメンション(CHANNEL)と3つの比較的スパースなディメンション(PRODUCTCUSTOMERTIME)があることが示されています。

SELECT fact, dimension, dimcolumn, membercount nmem, leafcount nleaf, advice, density
     FROM aw_sparsity_advice
     WHERE cubename='units_cube';
 
FACT                 DIMENSION    DIMCOLUMN     NMEM  NLEAF ADVICE          DENSITY
-------------------- ------------ ------------ ----- ------ ------------ ----------
units_history_fact   channel      channel_id       3      3 DENSE         .86545382
units_history_fact   product      item_id         36     36 SPARSE        .98706809
units_history_fact   customer     ship_to_id      61     62 SPARSE        .99257713
units_history_fact   time         month_id        96     80 SPARSE        .99415964

AW_ATTACHプロシージャ

AW_ATTACHプロシージャは、アナリティック・ワークスペースをSQLセッションにアタッチして、コンテンツにアクセスできるようにします。アタッチされたアナリティック・ワークスペースは、明示的にデタッチするかセッションを終了するまで、アタッチされたままとなります。

AW_ATTACHを使用してアナリティック・ワークスペースを作成することもできますが、アナリティック・ワークスペースの作成には専用のプロシージャAW_CREATEがあります。


注意:

OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

AW_ATTACH ( 
          awname        IN VARCHAR2,
          forwrite      IN BOOLEAN DEFAULT FALSE,
          createaw      IN BOOLEAN DEFAULT FALSE,
          attargs       IN VARCHAR2 DEFAULT NULL,
          tablespace    IN VARCHAR2 DEFAULT NULL);
AW_ATTACH ( 
          schema        IN VARCHAR2,
          awname        IN VARCHAR2,
          forwrite      IN BOOLEAN DEFAULT FALSE,
          createaw      IN BOOLEAN DEFAULT FALSE,
          attargs       IN VARCHAR2 DEFAULT NULL,
          tablespace    IN VARCHAR2 DEFAULT NULL);

パラメータ

表B-11 AW_ATTACHプロシージャのパラメータ

パラメータ 説明

schema

awnameを所有するスキーマ。

awname

createawTRUEとして指定されていない場合、既存のアナリティック・ワークスペースの名前。createawの説明を参照。

forwrite

TRUEの場合、読取り/書込みモードでアナリティック・ワークスペースがアタッチされ、アナリティック・ワークスペースに対する排他アクセス権および完全な管理権限が付与される。FALSEの場合、読取り専用モードでアナリティック・ワークスペースがアタッチされる。

createaw

TRUEの場合、awnameという名前のアナリティック・ワークスペースが作成される。awnameがすでに存在する場合、エラーが発生する。FALSEの場合、awnameという名前の既存のアナリティック・ワークスペースがアタッチされる。

attargs

FIRSTLASTなどの、アナリティック・ワークスペースをアタッチする際のキーワード(AWコマンドを参照)。


次のコマンドによって、GLOBAL_TRACKINGというアナリティック・ワークスペースが作成され、GLOBALの内容がコピーされます。ワークスペースは、AW$GLOBAL_TRACKINGという表に格納され、この表は3つのパーティションを持ち、ユーザーのデフォルトの表領域に格納されます。

EXECUTE dbms_aw.aw_attach('global');
EXECUTE dbms_aw.aw_copy('global', 'global_tracking', NULL, 3);

AW_COPYプロシージャ

AW_COPYプロシージャは、あるアナリティック・ワークスペースのオブジェクト定義およびデータを新しいアナリティック・ワークスペースにコピーします。

AW_COPYにより、元のワークスペースがデタッチされ、新しいワークスペースが最初に読取り/書込みアクセス権でアタッチされます。


注意:

OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

AW_COPY ( 
          oldname         IN VARCHAR2,
          newname         IN VARCHAR2,
          tablespace      IN VARCHAR2 DEFAULT NULL,
          partnum         IN NUMBER DEFAULT 8);

パラメータ

表B-12 AW_COPYプロシージャのパラメータ

パラメータ 説明

oldname

オブジェクト定義を含む既存のアナリティック・ワークスペースの名前。ワークスペースは空にはできない。

newname

oldnameのコピーである新しいアナリティック・ワークスペースの名前。

tablespace

newnameが格納される表領域の名前。このパラメータを省略した場合、ユーザーのデフォルトの表領域でアナリティック・ワークスペースが作成される。

partnum

AW$newname表に作成されるパーティションの数。


次のコマンドによって、GLOBAL_TRACKINGというアナリティック・ワークスペースが作成され、GLOBALの内容がコピーされます。ワークスペースは、AW$GLOBAL_TRACKINGという表に格納され、この表は3つのパーティションを持ち、ユーザーのデフォルトの表領域に格納されます。

EXECUTE dbms_aw.aw_attach('global');
EXECUTE dbms_aw.aw_copy('global', 'global_tracking', NULL, 3);

AW_CREATEプロシージャ

AW_CREATEプロシージャは、空のアナリティック・ワークスペースを新規作成し、セッションにおける現行のワークスペースにします。

現行のワークスペースは、アタッチされたワークスペースのリストの最初に表示されます。


注意:

OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

AW_CREATE ( 
           awname        IN VARCHAR2 ,
           tablespace    IN VARCHAR2 DEFAULT NULL ,
           partnum       IN NUMBER DEFAULT 8 );
AW_CREATE ( 
           schema        IN VARCHAR2 ,
           awname        IN VARCHAR2 ,
           tablespace    IN VARCHAR2 DEFAULT NULL); 

パラメータ

表B-13 AW_CREATEプロシージャのパラメータ

パラメータ 説明

schema

awnameを所有するスキーマ。

awname

新しいアナリティック・ワークスペースの名前。この名前は、Oracle Databaseの表に関するネーミング要件に準拠する必要がある。このプロシージャは、アナリティック・ワークスペースを格納するAW$awnameという表を作成する。

tablespace

アナリティック・ワークスペースが作成される表領域。このパラメータを省略した場合、アナリティック・ワークスペースはデフォルトの表領域に作成される。

partnum

AW$awname表に作成されるパーティションの数。


次のコマンドにより、GLOBAL_FINANCEという空のアナリティック・ワークスペースを新規作成します。新しいアナリティック・ワークスペースは、ユーザーのデフォルトの表領域で8つのパーティションを持つAW$GLOBAL_FINANCEという表に格納されます。

EXECUTE dbms_aw.aw_create('global_finance');

次のコマンドにより、GLOBALスキーマにDEMOというアナリティック・ワークスペースが作成されます。AW$DEMOは、2つのパーティションを持ち、GLOBAL表領域に格納されます。

EXECUTE dbms_aw.aw_create('global.demo', 'global', 2);

AW_DELETEプロシージャ

AW_DELETEプロシージャは、既存のアナリティック・ワークスペースを削除します。

構文

AW_DELETE ( 
    awname        IN VARCHAR2);
AW_DELETE ( 
    schema        IN VARCHAR2,
    awname        IN VARCHAR2);

パラメータ

表B-14 AW_DELETEプロシージャのパラメータ

パラメータ 説明

schema

awnameを所有するスキーマ。

awname

すべての内容とともに削除対象とする既存のアナリティック・ワークスペースの名前。削除するには、awnameの所有者であるか、DBA権限を持っている必要があり、対象のアナリティック・ワークスペースが現在セッションにアタッチされていてはならない。AW$awnameファイルがデータベースから削除される。


次のコマンドにより、ユーザーのデフォルトのスキーマにあるSALES_DEMOアナリティック・ワークスペースが削除されます。

EXECUTE dbms_aw.aw_delete('sales_demo');

AW_DETACHプロシージャ

AW_DETACHプロシージャは、セッションからアナリティック・ワークスペースをデタッチし、その内容にアクセスできないようにします。前回の更新以降に行った変更はすべて破棄されます。アナリティック・ワークスペースに対する変更の保存については、「AW_UPDATEプロシージャ」を参照してください。

構文

AW_DETACH ( 
          awname        IN VARCHAR2);
AW_DETACH ( 
          schema        IN VARCHAR2,
          awname        IN VARCHAR2);

パラメータ

表B-15 AW_DETACHプロシージャのパラメータ

パラメータ 説明

schema

awnameを所有するスキーマ。

awname

セッションからデタッチする対象であるアタッチされたアナリティック・ワークスペースの名前。


次のコマンドにより、GLOBAL_FINANCEアナリティック・ワークスペースがデタッチされます。

EXECUTE dbms_aw.aw_detach('global_finance');

次のコマンドにより、SH_AWスキーマ内のSALES_HISTORYアナリティック・ワークスペースがデタッチされます。

EXECUTE dbms_aw.aw_detach('sh_aw', 'sales_history');

AW_RENAMEプロシージャ

AW_RENAMEプロシージャは、アナリティック・ワークスペースの名前を変更します。


注意:

OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

AW_RENAME ( 
          oldname       IN VARCHAR2,
          newname       IN VARCHAR2 );

パラメータ

表B-16 AW_RENAMEプロシージャのパラメータ

パラメータ 説明

oldname

アナリティック・ワークスペースの現在の名前。このアナリティック・ワークスペースはいずれのセッションにもアタッチ不可。

newname

アナリティック・ワークスペースの新しい名前。


次のコマンドにより、DEMOアナリティック・ワークスペースがデタッチされ、その名前がSALES_DEMOに変更されます。

EXECUTE dbms_aw.aw_detach('demo');
EXECUTE dbms_aw.aw_rename('demo', 'sales_demo');

AW_TABLESPACEファンクション

AW_TABLESPACEファンクションは、特定のアナリティック・ワークスペースが格納される表領域の名前を返します。


注意:

OLAPワークシート内からはこのファンクションを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

AW_TABLESPACE ( 
          awname        IN VARCHAR2)
     RETURN VARCHAR2;
AW_TABLESPACE ( 
          schema        IN VARCHAR2,
          awname        IN VARCHAR2)
     RETURN VARCHAR2;

戻り値

表領域の名前。

パラメータ

表B-17 AW_TABLESPACEファンクションのパラメータ

パラメータ 説明

schema

awnameを所有するスキーマ。

awname

アナリティック・ワークスペースの名前。


次の例は、GLOBALアナリティック・ワークスペースが格納される表領域を示しています。

SET serveroutput ON

EXECUTE dbms_output.put_line('Sales History is stored in tablespace ' || 
     dbms_aw.aw_tablespace('sh_aw', 'sales_history'));

このコマンドにより、次の文が生成されます。

Sales History is stored in tablespace SH_AW

AW_UPDATEプロシージャ

AW_UPDATEプロシージャは、永続データベース表のアナリティック・ワークスペースに対する変更を保存します。データベースに保存されるこの表の更新バージョンについては、セッションを終了する前にSQL COMMIT文を発行する必要があります。

更新対象のアナリティック・ワークスペースを指定しない場合、AW_UPDATEは、読取り/書込みアクセス権で現在アタッチされているユーザー定義のワークスペースをすべて更新します。


注意:

OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

AW_UPDATE ( 
          awname     IN VARCHAR2 DEFAULT NULL);
AW_UPDATE ( 
          schema     IN VARCHAR2 DEFAULT NULL,
          awname     IN VARCHAR2 DEFAULT NULL);

パラメータ

表B-18 AW_UPDATEプロシージャのパラメータ

パラメータ 説明

schema

awnameを所有するスキーマ。

awname

awnameに対する変更内容をAW$awnameという表にコピーして保存する。このパラメータを省略した場合、変更内容は、読取り/書込みモードでアタッチされたすべてのアナリティック・ワークスペースについて保存される。


次のコマンドにより、GLOBALアナリティック・ワークスペースに対する変更が一時表領域から永続表領域に保存された後、その変更内容がデータベースにコミットされます。

EXECUTE dbms_aw.aw_update('global');
COMMIT;

CONVERTプロシージャ

CONVERTプロシージャは、アナリティック・ワークスペースの格納フォーマットを9iから10gに変換します。OLAP Worksheet内からはこのプロシージャを実行できないため、SQL*PlusなどのSQLツール内で実行してください。


注意:

dbms_aw.convertプロシージャの発行は、Oracle 9iのアナリティック・ワークスペースをOracle 10gのワークスペースにアップグレードする際の小さな手順の1つにすぎません。Oracle 9iのアナリティック・ワークスペースをアップグレードする手順の詳細は、『Oracle OLAPアプリケーション開発者ガイド 10gリリース2(10.2)』を参照してください。


関連項目:

アナリスティック・ワークスペースをOracle 11gの格納フォーマットに変換する方法の詳細は、『Oracle OLAPユーザーズ・ガイド』を参照してください。

構文

CONVERT (
          original_aw      IN VARCHAR2);
CONVERT ( 
          original_aw      IN VARCHAR2,
          converted_aw     IN VARCHAR2,
          tablespace       IN NUMBER DEFAULT);

パラメータ

表B-19 CONVERTプロシージャのパラメータ

パラメータ 説明

original_aw

変換対象とするアナリティック・ワークスペース。

converted_aw

変換されたアナリティック・ワークスペース。

tablespace

変換したワークスペースが格納される表領域の名前。このパラメータを省略した場合、ユーザーのデフォルトの表領域でアナリティック・ワークスペースが作成される。


この例では、アナリティック・ワークスペースを変換のソースとターゲットの両方に使用し、1ステップで変換を実行しています。

EXECUTE dbms_aw.convert('global');

次の例では、複数のステップで変換を実行しています。ワークスペース内の完全修飾されたオブジェクト名にはワークスペース名が含まれるため、変換したワークスペースの名前は、元のワークスペースと同一である必要があります。

EXECUTE dbms_aw.rename('global', 'global_temp');
EXECUTE dbms_aw.convert('global_temp', 'global');
EXECUTE dbms_aw.delete('global_temp');

EVAL_NUMBERファンクション

EVAL_NUMBERファンクションは、アナリティック・ワークスペースの数式を評価し、結果の数を返します。

EVAL_NUMBERファンクションをSELECT from DUAL文に指定して、アナリティック・ワークスペースで定義される数値定数を返すことができます。詳細は、『Oracle Database SQL言語リファレンス』のDUAL表からの選択についての説明を参照してください。


注意:

OLAPワークシート内からはこのファンクションを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

EVAL_NUMBER ( 
          olap_numeric_expression     IN    VARCHAR2)
     RETURN NUMBER;

パラメータ

表B-20 EVAL_NUMBERファンクションのパラメータ

パラメータ 説明

olap_numeric_expression

数値として評価されるOLAP DML式。第2章「OLAP DML式」を参照。


次の例では、現行のアナリティック・ワークスペースのDECIMALSオプションの値を返します。DECIMALSオプションは、数値出力に表示する小数点以下の桁数を制御するオプションです。この例では、DECIMALSの値はデフォルトの2です。

SET serveroutput ON
SELECT dbms_aw.eval_number('decimals') "Decimals" FROM dual;
 
  Decimals
----------
         2    

EVAL_TEXTファンクション

EVAL_TEXTファンクションは、アナリティック・ワークスペースのテキスト式を評価し、結果の文字列を返します。

EVAL_TEXTファンクションをSELECT from DUAL文に指定して、アナリティック・ワークスペースで定義される文字定数を返すことができます。詳細は、『Oracle Database SQL言語リファレンス』のDUAL表からの選択についての説明を参照してください。


注意:

OLAPワークシート内からはこのファンクションを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

EVAL_TEXT ( 
          olap_text_expression     IN    VARCHAR2)
    RETURN VARCHAR2;

パラメータ

表B-21 EVAL_TEXTファンクションのパラメータ

パラメータ 説明

olap_text_expression

文字列として評価されるOLAP DML式。第2章「OLAP DML式」を参照。


次の例では、セッションの現在の言語を指定するNLS_LANGUAGEオプションの値を返します。

SET serveroutput ON
SELECT dbms_aw.eval_text('nls_language') "NLS Language" FROM dual;
 

この例におけるNLS_LANGUAGEの値はAMERICANです。

NLS Language
---------------
AMERICAN 

EXECUTEプロシージャ

EXECUTEプロシージャは、1つ以上のOLAP DMLコマンドを実行し、出力をプリンタ・バッファへ送信します。通常は、対話型のSQLセッションでアナリティック・ワークスペースのデータを操作する際に使用します。RUNプロシージャとは対照的に、EXECUTEはエラー発生後もコマンドの処理を続行します。

SQL*Plusを使用している場合、次のコマンドを発行することにより、プリンタ・バッファを画面に表示できます。

SET SERVEROUT ON

他のプログラムを使用している場合、同様の設定についてはマニュアルを参照してください。

入力および出力は4Kに制限されます。さらに大きい値については、このパッケージのINTERPファンクションおよびINTERPCLOBファンクションを参照してください。

OLAP DML OUTFILEコマンドを使用して出力をリダイレクトした場合、このプロシージャではDMLコマンドの出力は印刷されません。


注意:

OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

EXECUTE ( 
          olap_commands     IN    VARCHAR2
          text              OUT   VARCHAR2);

パラメータ

表B-22 EXECUTEプロシージャのパラメータ

パラメータ 説明

olap-commands

セミコロンで区切られた1つ以上のOLAP DMLコマンド。「OLAP DMLコマンドで引用符を使用する場合のガイドライン」を参照。

text

OLAPコマンドに対するOLAPエンジンからの出力。


次の例では、GLOBALアナリティック・ワークスペースをアタッチしてTIMEのオブジェクト定義を示しています。

EXECUTE dbms_aw.aw_attach('global');
EXECUTE dbms_aw.execute('DESCRIBE time');

DEFINE TIME DIMENSION TEXT 

次の例では、エラー発生後にEXECUTEがコマンドの処理を続行する方法を示しています。

EXECUTE dbms_aw.execute('SHOW DECIMALS');
2
 
EXECUTE dbms_aw.execute('CALL nothing; DECIMALS=0');
BEGIN dbms_aw.execute('CALL nothing; DECIMALS=0'); END;
 
*
ERROR at line 1:
ORA-34492: Analytic workspace object NOTHING does not exist. 
ORA-06512: at "SYS.DBMS_AW", line 93 
ORA-06512: at "SYS.DBMS_AW", line 122 
ORA-06512: at line 1 
 
EXECUTE dbms_aw.execute('SHOW DECIMALS');
0

次の例では、エラー発生後にEXECUTEがコマンドの処理を続行する方法を示しています。

SQL> execute dbms_aw.execute('call nothing; colwidth=20');
BEGIN dbms_aw.execute('call nothing; colwidth=20'); END;
 
*
ERROR at line 1:
ORA-34492: Analytic workspace object NOTHING does not exist.
ORA-06512: at "SYS.DBMS_AW", line 90
ORA-06512: at "SYS.DBMS_AW", line 119
ORA-06512: at line 1
 
 
SQL> execute dbms_aw.execute('show colwidth');
20
 
PL/SQL procedure successfully completed.

GETLOGファンクション

このファンクションは、最近実行したこのパッケージのINTERPファンクションまたはINTERPCLOBファンクションからセッション・ログを返します。

このファンクションで返されるセッション・ログを印刷するには、DBMS_AW.PRINTLOGプロシージャを使用します。


注意:

OLAPワークシート内からはこのファンクションを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

GETLOG()
          RETURN CLOB;

戻り値

INTERPまたはINTERPCLOBへの最近のコールからのセッション・ログ。

次の例では、INTERPへのコールによって返されるセッション・ログ、およびGETLOGによって返される同一のセッション・ログを示しています。

EXECUTE dbms_aw.printlog(dbms_aw.interp('AW ATTACH global; REPORT units_cube'));

UNITS_CUBE 
--------------
TIME
CUSTOMER
PRODUCT
CHANNEL
 
EXECUTE dbms_aw.printlog(dbms_aw.getlog());

UNITS_CUBE
--------------
TIME
CUSTOMER
PRODUCT
CHANNEL

INFILEプロシージャ

INFILEプロシージャは、指定したファイルのOLAP DMLコマンドを評価し、そのコマンドを現行のアナリティック・ワークスペースで実行します。


注意:

OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

INFILE ( 
          filename     IN   VARCHAR2);

パラメータ

表B-23 INFILEプロシージャのパラメータ

パラメータ 説明

filename

OLAP DMLコマンドを含むファイルの名前。

ファイル・パスは、OLAPセッションのカレント・ディレクトリ・オブジェクトで指定する必要がある。OLAP DML CDAコマンドを使用して、カレント・ディレクトリ・オブジェクトを特定または変更する。


次の例では、finances.infファイルのOLAP DMLコマンドを実行しています。このファイルの場所は、WORK_DIRデータベース・ディレクトリによって識別されます。

EXECUTE dbms_aw.infile('work_dir/finances.inf');

INTERPファンクション

INTERPファンクションは、1つ以上のOLAP DMLコマンドを実行し、コマンドが実行されたセッションのログを返します。通常、EXECUTEプロシージャの出力制限4Kを超える出力が必要になりうる場合に、アプリケーションで使用されます。

INTERPファンクションへの入力は4Kに制限されます。さらに大きい入力値については、このパッケージのINTERPCLOBファンクションを参照してください。

OLAP DML OUTFILEコマンドを使用して出力をリダイレクトした場合、このファンクションではDMLコマンドの出力は返されません。

このパッケージのPRINTLOGプロシージャに対する引数としてINTERPファンクションを使用して、セッション・ログを表示できます。例を参照してください。


注意:

OLAPワークシート内からはこのファンクションを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

INTERP ( 
          olap-commands     IN   VARCHAR2)
     RETURN CLOB;

パラメータ

表B-24 INTERPファンクションのパラメータ

パラメータ 説明

olap-commands

セミコロンで区切られた1つ以上のOLAP DMLコマンド。「OLAP DMLコマンドで引用符を使用する場合のガイドライン」を参照。


戻り値

OLAP DMLコマンドが実行されたOracle OLAPセッションのログ・ファイル。

次のSQL*Plusセッションのサンプルでは、GLOBALアナリティック・ワークスペースをアタッチし、UNITS_CUBEのメンバーを一覧表示します。

SET serverout ON
EXECUTE dbms_aw.printlog(dbms_aw.interp('AW ATTACH global; REPORT units_cube'));

UNITS_CUBE
--------------
TIME
CUSTOMER
PRODUCT
CHANNEL

INTERPCLOBファンクション

INTERPCLOBファンクションは、1つ以上のOLAP DMLコマンドを実行し、コマンドが実行されたセッションのログを返します。通常、INTERPファンクションの入力制限4Kを超える入力が必要になりうる場合に、アプリケーションで使用されます。

OLAP DML OUTFILEコマンドを使用して出力をリダイレクトした場合、このファンクションではOLAP DMLコマンドの出力は返されません。

このパッケージのPRINTLOGプロシージャに対する引数としてINTERPCLOBファンクションを使用して、セッション・ログを表示できます。例を参照してください。

構文

INTERPCLOB ( 
          olap-commands     IN   CLOB)
     RETURN CLOB;

パラメータ

表B-25 INTERPCLOBファンクションのパラメータ

パラメータ 説明

olap-commands

セミコロンで区切られた1つ以上のOLAP DMLコマンド。「OLAP DMLコマンドで引用符を使用する場合のガイドライン」を参照。


戻り値

OLAP DMLコマンドが実行されたOracle OLAPセッションのログ。

次のSQL*Plusセッションのサンプルでは、ELECTRONICSというアナリティック・ワークスペースを作成し、その内容をdbsディレクトリ・オブジェクトに格納されたEIFファイルからインポートして、アナリティック・ワークスペースの内容を表示します。

SET serverout ON size 1000000
EXECUTE dbms_aw.printlog(dbms_aw.interpclob('AW ATTACH global; DESCRIBE'));

DEFINE GEN_OBJ_ROLES DIMENSION TEXT

DEFINE GEN_AW_OBJS VARIABLE TEXT <GEN_OBJ_ROLES>

DEFINE ALL_DIMENSIONS DIMENSION TEXT

DEFINE DIM_OBJ_LIST DIMENSION TEXT

DEFINE DIM_AW_OBJS VARIABLE TEXT <ALL_DIMENSIONS DIM_OBJ_LIST>
     .
     .
     .

INTERP_SILENTプロシージャ

INTERP_SILENTプロシージャは、1つ以上のOLAP DMLコマンドを実行し、コマンドからの出力をすべて抑止します。OLAPコマンド・インタプリタからのエラー・メッセージは抑止しません。

INTERP_SILENTファンクションへの入力は4Kに制限されます。OLAP DMLコマンドの出力を表示するには、EXECUTEプロシージャか、INTERPファンクションまたはINTERPCLOBファンクションを使用します。


注意:

OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

INTERP_SILENT ( 
          olap-commands     IN   VARCHAR2);

パラメータ

表B-26 INTERP_SILENTファンクションのパラメータ

パラメータ 説明

olap-commands

セミコロンで区切られた1つ以上のOLAP DMLコマンド。「OLAP DMLコマンドで引用符を使用する場合のガイドライン」を参照。


次のコマンドにより、EXECUTEINTERP_SILENTのメッセージ処理の違いを示します。いずれのコマンドも、読取り専用モードでGLOBALアナリティック・ワークスペースをアタッチします。ただし、EXECUTEは警告メッセージを表示しますが、INTERP_SILENTは表示しません。

EXECUTE dbms_aw.execute('AW ATTACH global');
IMPORTANT: Analytic workspace GLOBAL is read-only. Therefore, you will not be able to use the UPDATE command to save changes to it.
 
EXECUTE dbms_aw.interp_silent('AW ATTACH global');

OLAP_ONファンクション

OLAP_ONファンクションは、OLAPオプションがデータベースにインストールされているかどうかを示すブールを返します。


注意:

OLAPワークシート内からはこのファンクションを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

OLAP_ON ( )
    RETURN BOOLEAN;

戻り値

V$OPTION表のOLAPパラメータの値。

次のPL/SQLコードにより、OLAP_ONで返される値がテストされ、ステータス・メッセージが返されます。

BEGIN
          IF dbms_aw.olap_on() = true
             THEN dbms_output.put_line('The OLAP option is installed');
          ELSE dbms_output.put_line('The OLAP option is not installed');
          END IF;
END;
/

The OLAP option is installed

OLAP_RUNNINGファンクション

OLAP_RUNNINGファンクションは、OLAPオプションが現行のセッションで初期化されているかどうかを示すブールを返します。初期化が行われるのは、OLAP DMLコマンドを(直接、またはOLAP PL/SQLかJavaパッケージを使用して)実行したり、アナリティック・ワークスペースを問い合せたり、STARTUPプロシージャを実行する場合です。


注意:

OLAPワークシート内からはこのファンクションを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

OLAP_RUNNING( )
    RETURN BOOLEAN;

戻り値

OLAPが現行のセッションで初期化されている場合はTRUE、初期化されていない場合はFALSE

次のPL/SQLスクリプトでは、OLAP環境が初期化されているかどうかをテストし、されていない場合は初期化を開始します。

BEGIN
     IF dbms_aw.olap_running() THEN
          dbms_output.put_line('OLAP is already running');
     ELSE
          dbms_aw.startup;
     IF dbms_aw.olap_running() THEN
          dbms_output.put_line('OLAP started successfully');
     ELSE
          dbms_output.put_line('OLAP did not start. Is it installed?');
     END IF;
 END IF;
END;
/

OLAP started successfully

PRINTLOGプロシージャ

このプロシージャは、このパッケージのINTERPファンクション、INTERPCLOBファンクションまたはGETLOGファンクションで返されたセッション・ログを、PL/SQLのDBMS_OUTPUTパッケージを使用してプリンタ・バッファに送信します。

SQL*Plusを使用している場合、次のコマンドを発行することにより、プリンタ・バッファを画面に表示できます。

SET SERVEROUT ON SIZE 1000000

SIZE句により、デフォルト・サイズの4Kからバッファを増やします。

他のプログラムを使用している場合、同様の設定についてはマニュアルを参照してください。


注意:

OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

PRINTLOG ( 
          session-log     IN   CLOB);

パラメータ

表B-27 PRINTLOGプロシージャのパラメータ

パラメータ 説明

session-log

セッションのログ。


次の例は、INTERPファンクションによって返されるセッション・ログを示します。

SET serverout ON size 1000000

EXECUTE dbms_aw.printlog(dbms_aw.interp('REPORT W 30 all_dimensions'));
 
ALL_DIMENSIONS
------------------------------
TIME.DIMENSION
CUSTOMER.DIMENSION
PRODUCT.DIMENSION
CHANNEL.DIMENSION

RUNプロシージャ

RUNプロシージャは、1つ以上のOLAP DMLコマンドを実行し、出力をプリンタ・バッファへ送信します。通常は、対話型のSQLセッションでアナリティック・ワークスペースのデータを操作する際に使用します。EXECUTEプロシージャとは対照的に、RUNはエラーが発生した場合にはコマンドの処理を停止します。

SQL*Plusを使用している場合、次のコマンドを発行することにより、プリンタ・バッファを画面に表示できます。

SET SERVEROUT ON

他のプログラムを使用している場合、同様の設定についてはマニュアルを参照してください。

OLAP DML OUTFILEコマンドを使用して出力をリダイレクトした場合、このプロシージャではDMLコマンドの出力は印刷されません。


注意:

OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

RUN ( 
          olap_commands     IN      STRING, 
          silent            IN      BOOLEAN DEFAULT FALSE);
RUN ( 
          olap_commands     IN      CLOB,   
          silent            IN      BOOLEAN DEFAULT FALSE);
RUN ( 
          olap_commands     IN      STRING, 
          output            OUT     STRING);
RUN ( 
          olap_commands     IN      STRING, 
          output            IN OUT  CLOB);
RUN ( 
          olap_commands     IN      CLOB,   
          output            OUT     STRING);
RUN ( 
          olap_commands     IN      CLOB,
          output            IN OUT  CLOB);

パラメータ

表B-28 EXECUTEプロシージャのパラメータ

パラメータ 説明

olap-commands

セミコロンで区切られた1つ以上のOLAP DMLコマンド。「OLAP DMLコマンドで引用符を使用する場合のガイドライン」を参照。

silent

OLAP DMLコマンドからの出力を抑止する必要があるかどうかを通知するブール値。(OLAPエンジンからのエラー・メッセージは、この設定に関係なく、抑止されない。)

output

OLAPコマンドに対するOLAPエンジンからの出力。


次のSQL*Plusセッションのサンプルでは、XADEMOというアナリティック・ワークスペースをアタッチし、XADEMOCOST_PPという計算式を作成して、新しい計算式の定義を表示しています。

EXECUTE dbms_aw.run('DESCRIBE time');

DEFINE TIME DIMENSION TEXT                                                                                                                            

次の例では、エラー発生後にRUNがコマンドの実行を停止する方法を示しています。

EXECUTE dbms_aw.run('SHOW DECIMALS');
0
 
EXECUTE dbms_aw.run('CALL nothing; DECIMALS=4');
BEGIN dbms_aw.run('CALL nothing; DECIMALS=4'); END;
 
*
ERROR at line 1:
ORA-34492: Analytic workspace object NOTHING does not exist. 
ORA-06512: at "SYS.DBMS_AW", line 58 
ORA-06512: at "SYS.DBMS_AW", line 134 
ORA-06512: at line 1 
 
EXECUTE dbms_aw.run('SHOW DECIMALS');
0 

SHUTDOWNプロシージャ

SHUTDOWNプロシージャは、現行のOLAPセッションを終了します。

デフォルトでは、SHUTDOWNプロシージャは、アタッチされた読取り/書込み可能なワークスペースのいずれに対しても変更が途中でない場合にのみセッションを終了します。ワークスペースを更新せずにセッションを終了するには、forceパラメータを指定します。


注意:

OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

SHUTDOWN ( 
          force     IN    BOOLEAN  DEFAULT NO);

パラメータ

表B-29 SHUTDOWNプロシージャのパラメータ

パラメータ 説明

force

YESの場合、このパラメータは、1つ以上のアタッチされたワークスペースが更新されていなくても、OLAPセッションを強制的に停止する。デフォルトはNOです。


次のコマンドにより、GLOBALアナリティック・ワークスペースに対する変更がすべて保存され、ユーザーのOLAPセッションが終了します。

EXECUTE dbms_aw.aw_update('global_finance');
COMMIT;
EXECUTE dbms_aw.shutdown();

SPARSITY_ADVICE_TABLEプロシージャ

SPARSITY_ADVICE_TABLEプロシージャは、ADVISE_SPARSITYプロシージャによって生成されたアドバイスを格納する表を作成します。


注意:

OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

SPARSITY_ADVICE_TABLE (
          tblname   IN    VARCHAR2 DEFAULT);

パラメータ

表B-30 SPARSITY_ADVICE_TABLEプロシージャのパラメータ

パラメータ 説明

tblname

表の名前。デフォルトの名前は、自身のスキーマで作成されるAW_SPARSITY_ADVICEtblnameの列については、「ADVISE_SPARSITYプロシージャ」を参照。


次の例では、GLOBAL_SPARSITY_ADVICEという表を作成します。

EXECUTE dbms_aw.sparsity_advice_table('global_sparsity_advice');

STARTUPプロシージャ

STARTUPプロシージャは、ユーザー定義のワークスペースをアタッチせずにOLAPセッションを開始します。

STARTUPは、OLAP処理環境を初期化し、OLAPエンジンのプログラム・コードを含む読取り専用のEXPRESSワークスペースをアタッチします。


注意:

OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。

構文

STARTUP ( );

次の例では、OLAPセッションを開始します。

EXECUTE dbms_aw.startup();