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

戻る
戻る
 
次へ
次へ
 

OLAP DML処理対象のデータ・セットの指定方法

Oracle OLAPでは、定義された各ディメンションに対して「ステータス・リスト」というリストを使用して、ユーザーがアクセスできるディメンション値を追跡します。

ステータス・リストの概要

Oracle OLAPでは、定義された各ディメンションに対して「ステータス・リスト」というリストを使用して、ユーザーがアクセスできるディメンション値を追跡します。ステータス・リストには、デフォルトのステータス・リストと現行のステータス・リストの2種類があります。アナリティック・ワークスペース内のディメンションにおける現行のステータス・リストの値によって、常時、OLAP DMLで使用できるデータ・セットが決定されます。

デフォルトのステータス・リスト

ディメンションのデフォルトのステータス・リストとは、アナリティック・ワークスペースの最初のアタッチ時に、値が格納されている順序で読取り権限を持つディメンションのすべての値のリストです。次の方法でディメンションのデフォルトのステータス・リストを変更できます。

  • MAINTAINコマンドを使用するか、他の方法(たとえば、SQL FETCH文を使用)でディメンション値を追加して、ディメンションの値の追加、削除、移動、マージおよび名前の変更ができます。

  • PERMITまたはPERMITRESET文を使用して、ディメンションに関連付けられた値の読取り権限を変更できます。

現行のステータス・リスト

ディメンションの現行のステータス・リストとは、そのディメンションで現在アクセス可能な値を順序付けしたリストです。ディメンションの現行のステータス・リストに存在する値は、「ステータスにある」と言われます。アナリティック・ワークスペースの最初のアタッチ時は、各ディメンションのデフォルトおよび現行のステータス・リストは同じになります。

ディメンションの現行のステータス・リストによって、アナリティック・ワークスペース内のデータのアクセス可能性が決定されます。

  • ディメンションの場合、現行のステータス・リストにあるディメンション値のみが表示され、OLAP DML式でアクセスできます。

  • 変数のようなディメンション化されたオブジェクトの場合、現行のステータス・リストにあるディメンション値によって索引付けされるデータ値のみが表示され、OLAP DML式でアクセスできます。ディメンション化されたオブジェクトのループ処理が実行されるとき、現行のステータス・リスト内のディメンション値の順序により、アクセスされるオブジェクトの値の順序が決定されます。

ディメンションとその任意のディメンション・サロゲートは、同じステータスを共有します。ディメンション・サロゲートのステータスの設定により、そのディメンションのステータスが設定され、ディメンションのステータスの設定により、そのディメンションに対するすべてのディメンション・サロゲートのステータスが設定されます。このマニュアルを通して、ディメンションに関するリファレンスの内容は、特に記載がないかぎりはディメンション・サロゲートにも同様に適用されます。また、コンポジットはディメンションではないため、独自のステータスがありません。ステータスにあるコンポジットの値は、コンポジットのベース・ディメンションのステータスにより決定します。


注意:

ディメンション値がステータスにあるかどうかは、特定のセッション中にOLAP DMLで値を参照できるかどうかにのみ影響します。アナリティック・ワークスペースに格納されている値に永続的に影響することはありません。

データのサブセットを処理するための現行のディメンション・ステータスの変更

ディメンションの現行のステータス・リストがアナリティック・ワークスペース内のデータのアクセス可能性を決定するため、アナリティック・ワークスペース内のデータのサブセットを処理するには、1つ以上のディメンションの現行のステータス・リストを変更する必要があります。

LIMITコマンドを使用して、ディメンションの現行のステータス・リスト内で値および値の順序を変更します。LIMITコマンドは、非常に複雑なOLAP DMLコマンドです。このコマンドを使用すると、現行のステータス・リスト内の値を指定できます。その場合、リレーションを使用して明示的または暗黙的に値を指定します。最も単純な例として、例10-20「LIMITによる変数の部分的な移入」で、LIMITコマンドを使用してディメンションの現行のステータス・リストを変更する方法を示します。この方法でデータのサブセットを操作できます。

現行のディメンション・ステータスの保存およびリストア

ディメンションの現行のステータスを保存するには、いくつかの方法があります。ただし方法ごとに、保存の対象となるステータスは異なります。

  • 任意のセッション: 任意のセッションで使用するために現行のステータスを保存する場合は、そのステータスを持つ名前付き値セットを作成します。値セットを定義するには、DEFINE VALUESETコマンドを使用します。値セットに値を割り当てるには、LIMITコマンドを使用します。

  • 現行のセッション: 現行のセッションで使用するために現行のステータスの保存、アクセスまたは更新を行う場合は、名前付きコンテキストを使用します。コンテキストを定義するには、CONTEXTコマンドを使用します。

  • 現行のプログラム: 現行のプログラムで使用するために現行のステータスを保存する場合は、PUSHLEVELコマンドおよびPUSHコマンドを使用します。POPLEVELコマンドおよびPOPコマンドを使用すると、現行のステータス値をリストアできます。

ステータスを変更せずにデータのサブセットを使用する方法

場合によっては、ディメンションの現行のステータス・リストを実際には変更することなく、データのサブセットに対して個々のOLAP DML文またはOLAP DML式を実行する必要があります。このため、ディメンションの名前を指定するかわりに定義済の値セット・オブジェクトを指定できるOLAP DML文が用意されています。また次のいずれかを使用すれば、ディメンションの現行のステータス・リストを変更することなく、必要なデータのサブセットを指定できます。

  • CHGDIMSファンクション。式の評価時に、式のディメンション性やディメンション・ステータスを変更します。

  • LIMITファンクション。指定したLIMITコマンドや指定したディメンション・ステータス・スタックの結果として得られたディメンションまたはディメンション・サロゲートの値を、式の評価時に返します。

  • 修飾データ参照(QDR)。現行のステータスを変更せずにデータ・オブジェクトの単一の値を指定する場合に、式の1つ以上のディメンションを単一の値に制限できます。