$NATRIGGERプロパティには、ディメンション化された変数にあって変数のセッション・キャッシュ(存在する場合)にはないNA値に対するOracle OLAP用の代替値が指定されます。値を計算するため、Oracle OLAPは「Oracle OLAPがNA値を持つ変数のデータを計算する方法」で説明されている手順を実行します。計算の結果は、「$NATRIGGERの結果を格納またはキャッシュするかどうかのOracle OLAPによる決定方法」で説明されているように、変数に格納されるか、変数のセッション・キャッシュにキャッシュされるかのどちらかです。
注意: 変数の集計を実行する場合は、$NATRIGGERプロパティではなく、$AGGMAPプロパティを使用します。 |
構文
次のPROPERTY文を使用して、直近に定義または検討されたオブジェクト(DEFINEコマンドおよびCONSIDERコマンドを参照)に対し、$NATRIGGERプロパティの追加または削除を行います。
プロパティを追加する場合は、次の文を発行します。
PROPERTY '$NATRIGGER' value
プロパティを削除する場合は、次の文を発行します。
PROPERTY DELETE '$NATRIGGER'
使用上の注意
Oracle OLAPがNA値を持つ変数のデータを計算する方法
ディメンション化された変数のデータを計算する際、Oracle OLAPは変数の各セルについて次の手順を使用します。
変数にセッション・キャッシュがあるか。
ある場合。手順2に進みます。
ない場合は、手順3に進みます。
変数のセッション・キャッシュ内のセルにNA
値があるか。
ある場合。手順3に進みます。
ない場合は、手順7に進みます。
変数の格納内のセルにNA
値があるか。
ある場合。手順4に進みます。
ない場合は、手順7に進みます。
変数に$AGGMAPプロパティが設定されているか。
ある場合。$AGGMAPプロパティに指定されているaggmapを使用して変数を集計してから、手順5に進みます。
設定されていない場合は、手順6に進みます。
変数を集計した後のセルの値は何か。
NAの場合は、手順6に進みます。
非NAの場合は、手順7に進みます。
変数に$NATRIGGERプロパティが設定されているか。
ある場合。$NATRIGGERプロパティに指定されている式を実行してから、手順7に進みます。
ない場合は、手順7に進みます。
データを計算します。
必要に応じて、NAFILLファンクション、またはNASKIP、NASKIP2、NASPELLのいずれかのオプションを適用します。
再帰的または相互に再帰的に設定するNAトリガー
トリガー・オブジェクトを値式に含めることにより、NAトリガーを再帰的または相互に再帰的にできます。計算式、プログラムまたは他の$NATRIGGER式の実行中に再びトリガー式が実行されるようにするには、RECURSIVEオプションをYES
に設定する必要があります。同時に実行可能なトリガーの数を制限するには、TRIGGERMAXDEPTHオプションを参照してください。
コンポジットを持つ$NATRIGGERの使用
コンポジットによりディメンション化される変数に$NATRIGGER
式を設定できますが、Oracle OLAPはコンポジット内に存在するディメンション値の組合せに対してのみ$NATRIGGER
式を評価します。
EXPORTおよびAGGREGATEにより無視される$NATRIGGER
AGGREGATEコマンドおよびAGGREGATEファンクションは、集計処理中、変数の$NATRIGGERプロパティ設定を無視します。格納された値のみが文によりフェッチされ、$NATRIGGER式は実行されません。$NATRIGGERプロパティは、他の操作に対しては引き続き有効です。
Oracle OLAPでは、EXPORT(EIF)文が実行される際、エクスポートの対象が変数のみの場合は、変数の$NATRIGGERプロパティ式は評価されません。ただし、変数が、エクスポート操作時にOracle OLAPにより計算される式の一部である場合、Oracle OLAPは$NATRIGGERプロパティ式を評価します。
例
例4-11 $NATRIGGERプロパティの変数への追加
次の文は、3つの値を持つディメンションを定義し、そのディメンションによりディメンション化される変数を定義します。次に、$NATRIGGERプロパティを変数に追加して、値を変数の1つのセルに含め、他のセルを空のままにしてそれらの値をNA
にします。最後に、変数のセルの値をレポートします。
DEFINE d1 INTEGER DIMENSION MAINTAIN d1 ADD 3 DEFINE v1 DECIMAL <d1> PROPERTY '$NATRIGGER' '500.0' v1(d1 1) = 333.3 REPORT v1
この文によって生成される出力は、次のとおりです。
D1 V1 --------- ---------- 1 333.3 2 500.0 3 500.0