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

前
 
次
 

ACROSS

ACROSSコマンドは、ループ内で実行する1つ以上の文を含むテキスト式を指定するコマンドです。ACROSSは、ステータスを、指定されたディメンションの現行のステータスにある値に一時的に設定します。ACROSS文の実行後、ディメンション・ステータスがループ前の状態にリストアされ、次の文を使用してプログラムの実行が再開されます。DO句文内の文の繰返しは、ACROSS文で指定されるディメンションおよびコンポジットのステータス、およびWHERE句が含まれている場合はその結果により制御されます。

構文

ACROSS dimension... DO dml-statements [WHERE boolean-expression]

パラメータ

dimension

現行のステータスが、dml-statementsに含まれる1つ以上の文の繰返しを制御する、1つ以上のディメンションまたはコンポジット。文は、現行のステータスにある指定されたディメンションの値の各組合せに対して繰り返されます。複数のディメンションを指定した場合、最初のディメンションが最後に変化します。

DO dml-statements

ループの各反復時に実行される1つ以上のOLAP DML文である、複数行のテキスト式。どのようなOLAP DML文でも指定できますが、プログラム内の複数行構成の一部として通常使用されるものは例外です。たとえば、IF...THEN...ELSE、WHILE、FORまたはSWITCHコマンドは、ACROSS文では実行できません。

WHERE boolean-expression

ループの各反復時に、dml-statementsを実行する前にboolean-expressionを評価するように指定します。boolean-expressionの結果がNAまたはFALSEである場合には、その反復時にはboolean-expressionは実行されません。

使用上の注意

コンパイルしてから実行するまでの間のコードの変更

Oracle OLAPでは、ACROSS文またはそれを含むプログラムが実行されるまで、ループ本体のコードは生成されません。実行まではコードが生成されないため、文はテキスト式内に含まれているので、ACROSSループの内容をコンパイルしてから実行するまでの間に変更することが可能になります。

例9-4 ACROSSを使用したROWコマンドの繰返し

レポート・プログラムで、3か月の各月におけるテントの売上数量を表示するとします。次のACROSS文を使用して、monthディメンションのそれぞれの値についてROWコマンドを繰り返します。

LIMIT product TO 'Tents'
LIMIT month TO 'Jan95' to 'Mar95'
ACROSS month DO 'ROW INDENT 5 month WIDTH 6 unit'

     Jan95     533363
     Feb95     572796
     Mar95     707198