B DBMS_AW PL/SQLパッケージ
DBMS_AW PL/SQLパッケージには、アナリティック・ワークスペースを操作するためのプロシージャおよびファンクションが含まれています。
この付録の内容は次のとおりです。
-
各DBMS_AWサブプログラムに関するリファレンス項目
B.1 アナリティック・ワークスペースの管理
Oracle OLAPの操作を行うには、セッションにアナリティック・ワークスペースをアタッチする必要があります。DBMS_AW PL/SQLパッケージがインストールされている場合、SQL*Plusからこのタスクを実行できます。たとえば、次のコマンドを使用して、読取り専用アクセスでアナリティック・ワークスペースをアタッチすることが可能です。
EXECUTE dbms_aw.aw_attach ('awname
');
各アナリティック・ワークスペースは、アナリティック・ワークスペースのリストに関連付けられています。読取り専用ワークスペースEXPRESS.AW
(OLAPエンジン・コードを含む)は常に、このリストで最後にアタッチされます。ワークスペースを作成すると、デフォルトでこのリストの最初にアタッチされます。
FIRST
やLAST
などのキーワードを使用して、リスト内のアナリティック・ワークスペースの位置を変更できます。たとえば、次のコマンドは、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;
B.2 SQL文へのOLAP DMLの埋込み
DBMS_AW
パッケージにより、アナリティック・ワークスペース内であらゆるOLAP処理を実行できます。レガシー・ワークスペース、リレーショナル表またはフラット・ファイルから、データのインポートが可能です。OLAPオブジェクトの定義や、複雑な計算の実行もできます。
注意:
DBMS_AW
パッケージを使用してアナリティック・ワークスペースを一から作成する場合、特定の構造のアナリティック・ワークスペースを必要とするOLAPユーティリティ(Analytic Workspace ManagerやDBMS_AW
集計アドバイザなど)を使用できないことがあります。
B.2.1 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_AW
のEVAL_NUMBER
ファンクションおよびEVAL_TEXT
ファンクションを、SQLのOLAP_EXPRESSION
ファンクションと混同しないでください。詳細は、「OLAP_EXPRESSION」を参照してください。
B.3 スパーシティ・アドバイザの使用
データは、稠密、スパース、非常にスパースのいずれであるかに応じて、様々な形式でアナリティック・ワークスペースに格納できます。スパース性アドバイザはDBMS_AW
のサブプログラムのグループであり、これを使用して、リレーショナル・ソース・データを分析し、そのデータをアナリティック・ワークスペースに格納する際の推奨事項を取得できます。
B.3.1 アナリティック・ワークスペースにおけるデータ格納オプション
アナリティック・ワークスペースでは、ディメンション・メンバーの組合せごとに1つのセルを割り当てる多次元形式でデータを分析および操作します。セルには、データ値またはNA
(NULL)を含めることができます。セルのサイズは、その内容に関係なく、データ型によって定義されますが、たとえば、DECIMAL
変数の各セルは8バイトです。
変数は、稠密(データ値を持つセルを30%以上含む)またはスパース(データ値が30%未満)のいずれかとなります。ほとんどの変数はスパースであり、その多くが非常にスパースです。
データは分析用の多次元形式で保存することもできますが、他の方法を使用してスパースな変数を格納することにより、ディスク領域を効率よく使用してパフォーマンスを向上させることが可能です。スパースなデータは、コンポジット・ディメンションで定義される変数に格納できます。コンポジットは、そのメンバーとして、データの存在するディメンション値の組合せ(タプルと呼ばれる)を持ちます。コンポジットによってディメンション化された変数にデータ値が追加されると、コンポジット・タプルが作成されます。コンポジット・ディメンションは、1つ以上のスパースなデータ変数を格納する索引で、スパースなデータを稠密に格納します。非常にスパースなデータは、圧縮コンポジットで定義された変数に格納でき、圧縮コンポジットでは、通常のコンポジットとは異なるアルゴリズムを使用してデータが格納されます。
B.3.2 最適なデータ格納方法の選択
次元データとは対照的に、リレーショナル・データは、実際のデータ値についてのみ行を持つ非常にコンパクトな形式の表に格納されます。アナリティック・ワークスペースを設計する際、ソース・データのスパース性を手動で識別して最適な格納方法を決定するのが難しい場合があります。スパース性アドバイザにより、リレーショナル表のソース・データが分析され、格納方法がお薦めされます。推奨事項には、データ変数のパーティション化およびコンポジットの定義も含まれます。
スパース性アドバイザは、次のプロシージャとファンクションから構成されます。
- 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
B.3.4 例: GLOBALスキーマでのスパース性の評価
次の例で、GLOBAL
スキーマでUNITS_HISTORY_FACT
表のスパース性を評価するためのSQLスクリプトを示します。GLOBAL
アナリティック・ワークスペースでは、UNITS_HISTORY_FACT
がUnitsキューブを定義し、UNITS
変数のソースとなります。UNITS_HISTORY_FACT
は、4つのディメンション表からの外部キーで構成される主キーを持つファクト表です。5番目の列には、売上数量のファクトが含まれています。
CHANNEL_DIM
表とCUSTOMER_DIM
表には、基本的なスター構成のチャネルおよび顧客ディメンションの情報がすべて含まれます。スノーフレーク構成の3つの表により、時間ディメンションのデータとしてMONTH_DIM
、QUARTER_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.3.4.1 サンプル・プログラムからのアドバイス
例B-1のスクリプトで次の情報が生成されます。
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.
B.3.4.2 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
B.4 集計アドバイザの使用
アナリティック・ワークスペースでの集計データの管理は、パフォーマンスに大きく影響することがあります。DBMS_AW
パッケージのADVISE_REL
プロシージャおよびADVISE_CUBE
プロシージャを使用すると、事前集計するディメンション・メンバーの最適な組合せを決定できます。これらのプロシージャは、集計アドバイザとして知られています。
指定した割合に基づき、ADVISE_REL
は事前集計するディメンション・メンバーのセットを提示します。ADVISE_CUBE
は、キューブの各ディメンションについてメンバーのセットを提示します。
B.4.1 ワークスペースの集計機能
集計データを格納する手順は、aggmapというアナリティック・ワークスペース・オブジェクトで指定されます。OLAP DML AGGREGATE
コマンドは、aggmapを使用してデータを事前計算します。事前集計されないデータは、データの問合せ時にAGGREGATE
ファンクションで動的に集計されます。
静的な集計と動的な集計のバランスの選択は、ディスク領域、使用可能なメモリー、データに対して実行される問合せの特性と頻度など、多くの要素によって異なります。これらの要素を検討して、事前集計するデータの割合を決定します。
事前集計するデータの割合を決定したら、集計アドバイザを使用できます。これらのプロシージャで、階層内のディメンション・メンバーの分布を分析し、事前集計するディメンション・メンバーの最適な組合せを特定します。
B.4.2 例: 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
B.5 DBMS_AWサブプログラムの要約
次の表は、DBMS_AW
に含まれるサブプログラムを示しています。
表B-1 DBMS_AWサブプログラム
サブプログラム | 説明 |
---|---|
|
|
指定したキューブ・データの割合に基づいて、キューブの事前集計方法を提示する。 |
|
推奨されるキューブのコンポジット定義およびディメンションの順序を返す。 |
|
推奨されるキューブのコンポジットおよびメジャーを定義するOLAP DMLコマンドを生成する。 |
|
スパース性アドバイザによってパーティション化されたディメンションを識別する。 |
|
ディメンションのパーティション化を行う際にスパース性アドバイザで使用されるレベルを返す。 |
|
指定したディメンション・メンバーの割合に基づいて、ディメンションの事前集計方法を提示する。 |
|
スパース性についてファクト表を分析し、その分析結果を表に移入する。 |
|
アナリティック・ワークスペースをセッションにアタッチする。 |
|
新しいアナリティック・ワークスペースを作成し、別のアナリティック・ワークスペースのオブジェクト定義およびデータを移入する。 |
|
空のアナリティック・ワークスペースを新規作成する。 |
|
アナリティック・ワークスペースを削除する。 |
|
アナリティック・ワークスペースをセッションからデタッチする。 |
|
アナリティック・ワークスペースの名前を変更する。 |
|
特定のアナリティック・ワークスペースが格納される表領域の名前を返す。 |
|
アナリティック・ワークスペースに対する変更を保存する。 |
|
アナリティック・ワークスペースの格納フォーマットを9iから10gに変換する。 |
|
アナリティック・ワークスペースの数式の結果を返す。 |
|
アナリティック・ワークスペースのテキスト式の結果を返す。 |
|
1つ以上のOLAP DMLコマンドを実行する。入力および出力は4Kに制限されます。通常、アナリティック・ワークスペースを使用する対話型セッションで使用される。 |
|
最近実行した |
|
ファイルで指定されたOLAP DMLコマンドを実行する。 |
|
1つ以上のOLAP DMLコマンドを実行する。入力は4K、出力は4Gに制限される。通常、 |
|
1つ以上のOLAP DMLコマンドを実行する。入力および出力は4Gに制限される。通常、 |
|
1つ以上のOLAP DMLコマンドを実行し、出力を抑止する。入力は4K、出力は4Gに制限される。 |
|
OLAPオプションがデータベースにインストールされているかどうかを示すブールを返す。 |
|
OLAPオプションが現行のセッションで初期化されているかどうかを示すブールを返す。 |
|
|
|
1つ以上のOLAP DMLコマンドを実行する。 |
|
現行のOLAPセッションを停止する。 |
|
|
|
ユーザー定義のアナリティック・ワークスペースをアタッチせずにOLAPセッションを開始する。 |
B.6 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のディメンション・メンバーにマップするファクト表の列の名前。 |
|
|
|
ディメンション表の名前、またはディメンションを定義する列を返すSQL文。このパラメータを省略した場合、colnameが使用される。 |
|
次に示す階層の型の1つ。
|
|
階層を定義する列の名前。 レベルベース階層の場合、ベースレベルの列を最初に、最上位レベルの列を最後に指定する。ディメンションに複数の階層がある場合、予測で最も頻繁に使用する階層を選択し、この階層のレベルを定義する列のみを指定する。 親子階層の場合、子の列を最初に指定し、その後に親の列を指定する。 メジャー・ディメンションの場合、ディメンション・メンバーとなるファクト表の列を指定する。 |
|
パーティション化を制御するキーワード。以下の値のいずれかを使用します。
|
例
次の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; /
B.7 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の名前。 aggmapの各 |
|
事前集計するキューブ・データの割合。デフォルトは20%です。 |
|
通常のコンポジット( |
例
この例では、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
B.8 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ファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
コンポジット・ディメンションの定義が格納されるオブジェクト(PL/SQL変数など)の名前。 |
|
コンポジットのオブジェクト名。デフォルト値は |
|
パーティションの数。デフォルトでは、最初のパーティションの定義のみが表示される。 |
|
分析結果を格納するために |
例
次の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
を使用して分析結果を表示します。スパース性アドバイザにより、スパースなディメンションであるPRODUCT
、CUSTOMER
および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>
B.9 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プロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
プロシージャの推奨事項が格納されるオブジェクト(PL/SQL変数など)の名前。 |
|
|
|
サンプル・コンポジットのオブジェクト名。デフォルト値は |
|
サンプルの変数のOLAP DMLデータ型。 |
|
分析結果を格納するために |
例
次の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' . . .
B.10 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ファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
|
|
分析結果を格納するために |
例
次のプログラムの抜粋は、スパース性アドバイザの使用後に結果を問い合せる際に使用する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
B.11 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ファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
|
|
分析結果を格納するために |
例
次のプログラムの抜粋は、スパース性アドバイザの使用後に結果を問い合せる際に使用する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
B.12 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プロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ディメンション、およびディメンション・メンバー間の階層関係を指定する、ファミリ・リレーションの名前。 |
|
プロシージャの結果を格納する値セットの名前。値セットは、ファミリ・リレーションのディメンションから定義する必要がある。値セットが空でない場合、 |
|
事前集計するディメンションの割合。デフォルトは20%です。 |
|
通常のコンポジット( |
B.13 ADVISE_SPARSITYプロシージャ
ADVISE_SPARSITY
プロシージャは、ADD_DIMENSION_SOURCE
プロシージャで提供されるディメンションに関する情報を使用し、スパース性についてファクト表を分析します。SPARSITY_ADVICE_TABLE
プロシージャで作成される表に、分析結果を移入します。
注意:
OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。
関連項目:
出力の説明
次の表で、ADVISE_SPARSITY
によって生成される情報を説明します。
表B-9 出力列の説明
列 | データ型 | NULL | 説明 |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
キューブのディメンションの論理名。 |
|
|
ディメンション表に関連するファクト(ソース・ファクト表)のディメンション列の名前。 |
|
|
|
ディメンション表の名前。 |
|
|
|
全レベルのディメンション・メンバーの総数。 |
|
|
|
リーフ(または最小集計)レベルのディメンション・メンバーの数。 |
|
|
|
|
ディメンションのスパース性の評価( |
|
|
|
ディメンションの推奨される順序。 |
|
|
他のディメンションと比較したスパース性を示す数。この数が大きくなるほど、ディメンションはスパースになる。 |
|
|
|
|
|
|
|
このパーティションに格納する必要のある全ディメンション・メンバーのリスト。このリストは、 |
|
|
|
このパーティションにおける最上位レベルのディメンション・メンバーのリスト。 |
構文
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プロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ソースのファクト表の名前。 |
|
アナリティック・ワークスペースの論理キューブの名前など、分析されるファクトの名前。 |
|
|
|
表示したいアドバイスのレベル。次の値のいずれかを選択する。
|
|
パーティション化を制御するキーワード。以下の値のいずれかを使用します。
|
|
分析結果を格納するためにプロシージャで作成される表の名前。 |
例
次の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つの比較的スパースなディメンション(PRODUCT
、CUSTOMER
、TIME
)があることが示されています。
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
B.14 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プロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
awnameを所有するスキーマ。 |
|
createawが |
|
|
|
|
|
|
例
次のコマンドによって、GLOBAL_TRACKING
というアナリティック・ワークスペースが作成され、GLOBAL
の内容がコピーされます。ワークスペースは、AW$GLOBAL_TRACKING
という表に格納され、この表は3つのパーティションを持ち、ユーザーのデフォルトの表領域に格納されます。
EXECUTE dbms_aw.aw_attach('global'); EXECUTE dbms_aw.aw_copy('global', 'global_tracking', NULL, 3);
B.15 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が格納される表領域の名前。このパラメータを省略した場合、ユーザーのデフォルトの表領域でアナリティック・ワークスペースが作成される。 |
|
|
例
次のコマンドによって、GLOBAL_TRACKING
というアナリティック・ワークスペースが作成され、GLOBAL
の内容がコピーされます。ワークスペースは、AW$GLOBAL_TRACKING
という表に格納され、この表は3つのパーティションを持ち、ユーザーのデフォルトの表領域に格納されます。
EXECUTE dbms_aw.aw_attach('global'); EXECUTE dbms_aw.aw_copy('global', 'global_tracking', NULL, 3);
B.16 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プロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
awnameを所有するスキーマ。 |
|
新しいアナリティック・ワークスペースの名前。この名前は、Oracle Databaseの表に関するネーミング要件に準拠する必要がある。このプロシージャは、アナリティック・ワークスペースを格納する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);
B.17 AW_DELETEプロシージャ
AW_DELETE
プロシージャは、既存のアナリティック・ワークスペースを削除します。
構文
AW_DELETE ( awname IN VARCHAR2);
AW_DELETE ( schema IN VARCHAR2, awname IN VARCHAR2);
パラメータ
表B-14 AW_DELETEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
awnameを所有するスキーマ。 |
|
すべての内容とともに削除対象とする既存のアナリティック・ワークスペースの名前。削除するには、awnameの所有者であるか、DBA権限を持っている必要があり、対象のアナリティック・ワークスペースが現在セッションにアタッチされていてはならない。AW$awnameファイルがデータベースから削除される。 |
例
次のコマンドにより、ユーザーのデフォルトのスキーマにあるSALES_DEMO
アナリティック・ワークスペースが削除されます。
EXECUTE dbms_aw.aw_delete('sales_demo');
B.18 AW_DETACHプロシージャ
AW_DETACH
プロシージャは、セッションからアナリティック・ワークスペースをデタッチし、その内容にアクセスできないようにします。前回の更新以降に行った変更はすべて破棄されます。アナリティック・ワークスペースに対する変更の保存については、「AW_UPDATEプロシージャ」を参照してください。
構文
AW_DETACH ( awname IN VARCHAR2);
AW_DETACH ( schema IN VARCHAR2, awname IN VARCHAR2);
パラメータ
表B-15 AW_DETACHプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
awnameを所有するスキーマ。 |
|
セッションからデタッチする対象であるアタッチされたアナリティック・ワークスペースの名前。 |
例
次のコマンドにより、GLOBAL_FINANCE
アナリティック・ワークスペースがデタッチされます。
EXECUTE dbms_aw.aw_detach('global_finance');
次のコマンドにより、SH_AW
スキーマ内のSALES_HISTORY
アナリティック・ワークスペースがデタッチされます。
EXECUTE dbms_aw.aw_detach('sh_aw', 'sales_history');
B.19 AW_RENAMEプロシージャ
AW_RENAME
プロシージャは、アナリティック・ワークスペースの名前を変更します。
注意:
OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。
構文
AW_RENAME ( oldname IN VARCHAR2, newname IN VARCHAR2 );
パラメータ
表B-16 AW_RENAMEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
アナリティック・ワークスペースの現在の名前。このアナリティック・ワークスペースはいずれのセッションにもアタッチ不可。 |
|
アナリティック・ワークスペースの新しい名前。 |
例
次のコマンドにより、DEMO
アナリティック・ワークスペースがデタッチされ、その名前がSALES_DEMO
に変更されます。
EXECUTE dbms_aw.aw_detach('demo'); EXECUTE dbms_aw.aw_rename('demo', 'sales_demo');
B.20 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ファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
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
B.21 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プロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
awnameを所有するスキーマ。 |
|
awnameに対する変更内容を |
例
次のコマンドにより、GLOBAL
アナリティック・ワークスペースに対する変更が一時表領域から永続表領域に保存された後、その変更内容がデータベースにコミットされます。
EXECUTE dbms_aw.aw_update('global'); COMMIT;
B.22 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ユーザーズ・ガイド』のOracle OLAP 10gからのメタデータのアップロードに関する項を参照してください
構文
CONVERT ( original_aw IN VARCHAR2);
CONVERT ( original_aw IN VARCHAR2, converted_aw IN VARCHAR2, tablespace IN NUMBER DEFAULT);
パラメータ
表B-19 CONVERTプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
変換対象とするアナリティック・ワークスペース。 |
|
変換されたアナリティック・ワークスペース。 |
|
変換したワークスペースが格納される表領域の名前。このパラメータを省略した場合、ユーザーのデフォルトの表領域でアナリティック・ワークスペースが作成される。 |
例
この例では、アナリティック・ワークスペースを変換のソースとターゲットの両方に使用し、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');
B.23 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 DML式。「OLAP DML式」を参照。 |
例
次の例では、現行のアナリティック・ワークスペースのDECIMALS
オプションの値を返します。DECIMALS
オプションは、数値出力に表示する小数点以下の桁数を制御するオプションです。この例では、DECIMALS
の値はデフォルトの2です。
SET serveroutput ON SELECT dbms_aw.eval_number('decimals') "Decimals" FROM dual; Decimals ---------- 2
B.24 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 DML式。「OLAP DML式」を参照。 |
例
次の例では、セッションの現在の言語を指定するNLS_LANGUAGE
オプションの値を返します。
SET serveroutput ON SELECT dbms_aw.eval_text('nls_language') "NLS Language" FROM dual;
この例におけるNLS_LANGUAGE
の値はAMERICAN
です。
NLS Language --------------- AMERICAN
B.25 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プロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
セミコロンで区切られた1つ以上のOLAP DMLコマンド。「OLAP DMLコマンドで引用符を使用する場合のガイドライン」を参照。 |
|
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.
B.26 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
B.27 INFILEプロシージャ
INFILE
プロシージャは、指定したファイルのOLAP DMLコマンドを評価し、そのコマンドを現行のアナリティック・ワークスペースで実行します。
注意:
OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。
構文
INFILE ( filename IN VARCHAR2);
パラメータ
表B-23 INFILEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
OLAP DMLコマンドを含むファイルの名前。 ファイル・パスは、OLAPセッションのカレント・ディレクトリ・オブジェクトで指定する必要がある。OLAP DML CDAコマンドを使用して、カレント・ディレクトリ・オブジェクトを特定または変更する。 |
例
次の例では、finances.inf
ファイルのOLAP DMLコマンドを実行しています。このファイルの場所は、WORK_DIR
データベース・ディレクトリによって識別されます。
EXECUTE dbms_aw.infile('work_dir/finances.inf');
B.28 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ファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
セミコロンで区切られた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
B.29 INTERPCLOBファンクション
INTERPCLOB
ファンクションは、1つ以上のOLAP DMLコマンドを実行し、コマンドが実行されたセッションのログを返します。通常、INTERP
ファンクションの入力制限4Kを超える入力が必要になりうる場合に、アプリケーションで使用されます。
OLAP DML OUTFILE
コマンドを使用して出力をリダイレクトした場合、このファンクションではOLAP DMLコマンドの出力は返されません。
このパッケージのPRINTLOG
プロシージャに対する引数としてINTERPCLOB
ファンクションを使用して、セッション・ログを表示できます。例を参照してください。
構文
INTERPCLOB ( olap-commands IN CLOB) RETURN CLOB;
パラメータ
表B-25 INTERPCLOBファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
セミコロンで区切られた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> . . .
B.30 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ファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
セミコロンで区切られた1つ以上のOLAP DMLコマンド。「OLAP DMLコマンドで引用符を使用する場合のガイドライン」を参照。 |
例
次のコマンドにより、EXECUTE
とINTERP_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');
B.31 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
B.32 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
B.33 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 |
セッションのログ。 |
B.34 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プロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
セミコロンで区切られた1つ以上のOLAP DMLコマンド。「OLAP DMLコマンドで引用符を使用する場合のガイドライン」を参照。 |
|
OLAP DMLコマンドからの出力を抑止する必要があるかどうかを通知するブール値。(OLAPエンジンからのエラー・メッセージは、この設定に関係なく、抑止されない。) |
|
OLAPコマンドに対するOLAPエンジンからの出力。 |
例
次のSQL*Plusセッションのサンプルでは、XADEMO
というアナリティック・ワークスペースをアタッチし、XADEMO
にCOST_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
B.35 SHUTDOWNプロシージャ
SHUTDOWN
プロシージャは、現行のOLAPセッションを終了します。
デフォルトでは、SHUTDOWN
プロシージャは、アタッチされた読取り/書込み可能なワークスペースのいずれに対しても変更が途中でない場合にのみセッションを終了します。ワークスペースを更新せずにセッションを終了するには、force
パラメータを指定します。
注意:
OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。
構文
SHUTDOWN ( force IN BOOLEAN DEFAULT NO);
パラメータ
表B-29 SHUTDOWNプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
例
次のコマンドにより、GLOBAL
アナリティック・ワークスペースに対する変更がすべて保存され、ユーザーのOLAPセッションが終了します。
EXECUTE dbms_aw.aw_update('global_finance'); COMMIT; EXECUTE dbms_aw.shutdown();
B.36 SPARSITY_ADVICE_TABLEプロシージャ
SPARSITY_ADVICE_TABLE
プロシージャは、ADVISE_SPARSITY
プロシージャによって生成されたアドバイスを格納する表を作成します。
注意:
OLAPワークシート内からはこのプロシージャを実行できません。SQL*PlusなどのSQLツール内で実行してください。
関連項目:
構文
SPARSITY_ADVICE_TABLE ( tblname IN VARCHAR2 DEFAULT);
パラメータ
表B-30 SPARSITY_ADVICE_TABLEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
表の名前。デフォルトの名前は、自身のスキーマで作成される |
例
次の例では、GLOBAL_SPARSITY_ADVICE
という表を作成します。
EXECUTE dbms_aw.sparsity_advice_table('global_sparsity_advice');