ヘッダーをスキップ
Oracle OLAP DMLリファレンス
11g リリース1(11.1)
E05732-02
  目次へ
目次
索引へ
索引

戻る
戻る
 
次へ
次へ
 

SELECT FROM OLAP_TABLE文でのOLAP DML式の使用

OLAP DMLコマンドは、SELECT FROM OLAP_TABLE文内で使用できます。詳細は次の項で説明します。

単一行ファンクションとして使用するOLAP DML式

一般に、SQLファンクションは、問い合された表またはビューのすべての行について単独の結果行を返す単一行ファンクションです。Oracleでは、事前定義された様々なSQL単一行ファンクションをサポートしています。たとえば、数値データを返すCOSLOGROUND、文字データを返すUPPERLOWERなどがあります。

SELECT FROM OLAP_TABLE文のコンテキストには、OLAP DMLファンクションが単一行ファンクションとして機能するようにOLAP DMLファンクションをラップするための、4つのSQLファンクションがあります。これらのファンクションは、それぞれデータ型が異なる4種類のOLAP DML式の結果を戻します。具体的には、Oracle OLAPの数式に使用するOLAP_EXPRESSION、Oracle OLAPのブール式に使用するOLAP_EXPRESSION_BOOL、Oracle OLAPの日時式に使用するOLAP_EXPRESSION_DATE、Oracle OLAPのテキスト式に使用するOLAP_EXPRESSION_TEXTです。これらの各SQLファンクションの引数の1つが、OLAP DMLファンクションです。

OLAP_EXPRESSIONファンクションおよびこれに類するファンクションは、他のOracle単一行ファンクションと同じ方法で(特にSELECT構文のリスト内や、WHERE句およびORDER BY句内で)指定できます。

SELECT FROM OLAP_TABLE文からのアナリティック・ワークスペースの変更

OLAP_TABLEの実行中にアナリティック・ワークスペースを即時に変更するためのメカニズムは複数あります。

OLAP_CONDITION SQLファンクションを使用すると、SELECT FROM OLAP_TABLE文のコンテキスト内でアナリティック・ワークスペースを変更できます。OLAP_CONDITIONは、(特にWHERE句で)他のOracleファンクションと同じように指定できます。OLAP_CONDITIONを使用して、オプションを設定したり、LIMITコマンドを実行したり、OLAPのモデルや予測を実行したり、プログラムを実行したりできます。ワークスペースに対する変更は、一時的なものにすることも、問合せの完了時にセッションに残しておくこともできます。

OLAP_CONDITION以外にも、OLAP_TABLEファンクション自体によってサポートされている構文が使用できます。たとえば、制限マップでのPREDMLCMD句やPOSTDMLCMD句、olap_commandパラメータなどです。OLAP_CONDITIONOLAP_TABLE内に埋め込まれていないため移植が可能で、また様々な入力ポイントで適用できるので汎用性があります。

OLAP_TABLEは、問合せの結果セットを生成するLIMITコマンドの実行前に、制限マップ内のディメンションのステータスを保存します。データがフェッチされた後、OLAP_TABLEはディメンションのステータスをリストアします。ディメンションのステータスが保存される前にOLAP DMLコマンドが実行されるようにするには、制限マップでPREDMLCMD句を指定します。PREDMLCMD句による変更は、OLAP_TABLEの実行後もワークスペース内に保持されます(POSTDMLCMD句で変更を無効にする場合を除く)。詳細は、limit_mapを参照してください。

OLAP_TABLEolap_commandパラメータには、結果セットがフェッチされる直前に実行されるOLAP DMLコマンドを指定します。一部の環境では、olap_commandパラメータにOLAP DML FETCHコマンドが含まれていることがあります。この場合は、このコマンドによりフェッチが管理されます。olap_commandパラメータによって設定された制限は、OLAP_TABLEの実行中のみ有効です。詳細は、olap_commandを参照してください。