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

前
 
次
 

TRIGGERMAXDEPTH

TRIGGERMAXDEPTHオプションは、Oracle OLAPが同時に実行可能な$NATRIGGERプロパティ式の最大数を指定するオプションです。

データ型

INTEGER

構文

TRIGGERMAXDEPTH = n

パラメータ

n

同時に実行可能な$NATRIGGERプロパティ式の最大数を指定するINTEGERの式。デフォルト値は50です。

使用上の注意

$NATRIGGERプロパティについて

TRIGGERMAXDEPTHオプションは、変数の$NATRIGGERプロパティとともに動作します。

再帰的トリガー

RECURSIVEオプションがYESに設定されていないかぎり、$NATRIGGER式の実行中にこの式で実行される計算式、プログラムまたはその他の$NATRIGGER式で、再帰的な$NATRIGGER式の実行はできません。TRIGGERMAXDEPTHオプションは、$NATRIGGER式の再帰の深さを制御し、Oracle OLAPが誤動作する可能性のある無限の再帰や過剰に深い再帰を防止します。

例5-106 トリガーの深さの最大値の設定

この例では、トリガーの深さの最大値を設定し、その最大値を超えた後、深さをより大きい値に設定します。通常、TRIGGERMAXDEPTHの値は、この例で使用する2よりもずっと大きい値です。デフォルト値は50です。

DEFINE d1 INTEGER DIMENSION
MAINTAIN d1 ADD 2
DEFINE v1 DECIMAL <d1>
PROPERTY '$NATRIGGER' 'v2 + 1'
DEFINE v2 DECIMAL <d1>
PROPERTY '$NATRIGGER' 'v3 + 1'
DEFINE v3 DECIMAL <d1>
PROPERTY '$NATRIGGER' 'v4 + 1'
DEFINE v4 DECIMAL <d1>
v4(d1 1) = 333.3
RECURSIVE = YES
TRIGGERMAXDEPTH = 2
SHOW v1
 

この文によって生成される出力は、次のとおりです。

ERROR: Depth of NA trigger calls exceeds allowable (maximum depth 2)

次の文を実行すると、トリガーの深さの最大値がより大きい値に設定され、変数の値が表示されます。

TRIGGERMAXDEPTH = 3
SHOW v1

この文によって生成される出力は、次のとおりです。

336.3