INSTATファンクションは、ディメンション値またはディメンション・サロゲート値が現行のステータス・リストにあるか、またはディメンション値が値セットにあるかどうかをチェックします。
戻り値
BOOLEAN
値が現行のステータス・リストまたは値セットにある場合はYES、ない場合はNO。
構文
INSTAT(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
ディメンション値には、East
、Central
およびWest
があります。product
ディメンション値には、Tents
、Canoes
および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