ヘッダーをスキップ
Oracle® OLAP DMLリファレンス
11gリリース2 (11.2)
B61346-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

INSTAT

INSTATファンクションは、ディメンション値またはディメンション・サロゲート値が現行のステータス・リストにあるか、またはディメンション値が値セットにあるかどうかをチェックします。

戻り値

BOOLEAN

値が現行のステータス・リストまたは値セットにある場合はYES、ない場合はNO。

構文

INSTAT(dimensionvalue)

パラメータ

dimension

ディメンション、ディメンション・サロゲートまたは値セットの名前。

value

テストするディメンション値またはディメンション・サロゲート値で、テキスト・リテラル(一重引用符で囲む)または値を指定する式のどちらかです。結合ディメンションまたは連結ディメンションの値を指定するには、値を山カッコで囲みます。結合ディメンションの場合、複数のベース・ディメンション値をカンマと空白で区切ります。連結ディメンションの場合、ベース・ディメンションとその値をコロンと空白で区切ります。

使用上の注意

無効な値のチェック

INSTAT文でディメンション名およびディメンション値を指定すると、値がディメンションの現行のステータス・リストにあるかどうかがわかります。それに対し、ISVALUEファンクションでは、あるアイテムがステータスにあるかどうかにかかわらず、ディメンションの値であるかどうかがわかります。valueがディメンション値ではない場合、INSTATはエラーを生成し、ISVALUEは単にFALSEの値を返します。

例7-123 値セットを指定したINSTATの使用

アナリティック・ワークスペースに、次のような定義および値を持つgeogディメンションがあるとします。

DEFINE geog TEXT DIMENSION
GEOG
--------------
Austria
Belgium
Canada

また、値セットmygeogsを定義し、次の文を使用してこの値セットの値を識別するとします。

DEFINE mygeogs VALUESET geog
LIMIT mygeogs TO 'Belgium'
 

値セットに対してREPORTは発行できません。これを試行すると、Oracle OLAPによってエラー・メッセージが発行されます。

REPORT mygeogs
ORA-34104: INSTATTEST!MYGEOGS is not a type of object that contains data values.
 

ただし、INSTATファンクションを使用して、ディメンションのどの値が値セットにあるかを表示できます。

REPORT INSTAT (mygeogs, geog)

GEOG            INSTAT (MYGEOGS, GEOG)
-------------- ------------------------
Austria                              no
Belgium                             yes
Canada                               no

例7-124 現行のステータスのチェック

次の例では、プログラムに引数としてmonthディメンションの値を渡しています。プログラムの最初の部分でINSTATを使用して、引数として渡されたディメンション値がmonthの現行のステータスにあるかどうかをチェックします。現行のステータスにある場合、プログラムはレポート・プログラムをコールします。現行のステータスにない場合、プログラムはエラー処理セクションに分岐します。

ARGUMENT onemonth month
 
IF INSTAT(month onemonth)
   THEN sales_report
   ELSE GOTO error
...

例7-125 ディメンションが結合ディメンションの場合のINSTATの使用

指定するディメンションが結合ディメンションである場合、値全体を一重引用符で囲む必要があります。たとえば、アナリティック・ワークスペースにregionディメンションおよびproductディメンションがあるとします。regionディメンション値には、EastCentralおよびWestがあります。productディメンション値には、TentsCanoesおよびRacquetsがあります。

次の文は、結合ディメンションを定義してそれに値を追加します。

DEFINE reg.prod DIMENSION <geography product>
MAINTAIN reg.prod ADD <'East', 'Tents'> <'West', 'Canoes'>

ベース位置を指定するには、次のような文を使用します。

SHOW INSTAT(reg.prod '<1, 1>')
YES

ベース・テキスト値を指定するには、次のような文を使用します。

SHOW INSTAT(reg.prod '<\'East\', \'Tents\'>')
YES

例7-126 ディメンションが連結ディメンションの場合のINSTATの使用

指定するディメンションが連結ディメンションである場合、コンポーネントのディメンションとディメンション値のペアである<component dimension: dimension value>全体を一重引用符で囲む必要があります。次の文は、ベース・ディメンションとしてregionおよびproductを持つ連結ディメンションを定義します。

DEFINE reg.prod.ccdim DIMENSION CONCAT(region product)

reg.prod.ccdimのレポートで返される結果は、次のとおりです。

REG.PROD.CCDIM
----------------------
<region: East>
<region: Central>
<region: West>
<product: Tents>
<product: Canoes>
<product: Racquets>

ベース・ディメンション位置を指定するには、次のような文を使用します。

SHOW INSTAT(reg.prod.ccdim '<product: 3>')
yes

ベース・ディメンション・テキスト値を指定するには、次のような文を使用します。

SHOW INSTAT(reg.prod.ccdim '<product: Tents>')
YES