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

前
 
次
 

VARIABLE

OLAP DMLプログラムの内部では、VARIABLEコマンドは、OLAP DMLプログラムの内部で使用するローカル変数や値セットを宣言するコマンドです。ローカル変数はディメンションを保持できず、プログラムの実行中にのみ存在します。


関連項目:

DEFINE VARIABLEコマンド

構文

VARIABLE name {datatype|dimension|VALUESET dim}

パラメータ

name

ローカル変数または値セットの名前。既存のアナリティック・ワークスペース・オブジェクトと同じ名前を使用すると、アナリティック・ワークスペース・オブジェクトよりもローカル変数や値セットの方が優先されます。変数または値セットに値を割り当てると、その値はVARIABLE文が出現するプログラムの内部で使用できるようになります。変数または値セットに名前を付ける場合は、アナリティック・ワークスペース・オブジェクトのネーミング規則に従います(DEFINEコマンドを参照)。

datatype

格納されるデータの種類を示す変数のデータ型。DEFINE VARIABLEの項にリストおよび説明されている任意のデータ型を指定できます。また、プログラムが引数を特定のデータ型に変換することなく受け取ることができるようにする場合、そのデータ型のWORKSHEETを指定することもできます。

dimension

nameが、指定したディメンションの単一の値を保持するリレーション変数であることを示します。この変数には、ディメンションの値または指定したディメンションの位置(INTEGER)を格納できます。現在ディメンションに存在しない値を代入すると、エラーが発生します。

VALUESET dim

nameが値セットであることを示します。dim引数には、値セットが値を保持するディメンションの名前を指定します。

使用上の注意

ローカル変数の永続性

ローカル変数または値セットは、これを指定したプログラムが実行されている間のみ存在します。プログラムが終了すると、変数または値セットは存在しなくなり、その値は失われます。プログラムが終了するのは、RETURN文、SIGNAL文、プログラムの最後の行のいずれかが実行されたときです。プログラムが別のプログラムをコールすると、元のプログラムは一時的に停止しますが、変数や値セットはコールされたプログラムが終了しても存在し続け、元のプログラムに制御が戻されます。自身を再帰的にコールするプログラムには、プログラムの実行時コピーごとに個別のローカル変数または値セットがあります。

プログラム開始時の宣言

ローカル変数または値セットは、すべてプログラムの先頭、つまり実行可能な文の前に指定する必要があります。

ローカル変数または値セットの初期値

ローカル変数または値セットの初期値はNAです。

アナリティック・ワークスペース・オブジェクト名との重複

ローカル変数または値セットにアナリティック・ワークスペース・オブジェクトと同じ名前を付けると、プログラムの内部でローカル変数または値セットを参照しているものとみなされます。アナリティック・ワークスペース・オブジェクトが優先されるのは、アナリティック・ワークスペース・オブジェクトを引数として要求する文の場合のみです。

OBJファンクションおよびEXISTSファンクションは、引数としてアナリティック・ワークスペース・オブジェクトを必要としますが、ローカル・テキスト変数または値セットを使用してオブジェクトの名前を指定できます。

計算式およびモデル

計算式またはモデルではローカル変数や値セットを使用できません。

EXPORTコマンドとIMPORTコマンド

プログラム内でEXPORT(EIF)文を使用するとEIFファイルにローカル変数や値セットの値を格納できます。変数や値セットにアナリティック・ワークスペース・オブジェクトの名前を付けるには、ASキーワードを使用する必要があります。この名前は、ローカル変数や値セットの名前と同じでも構いません。IMPORT(EIF)を使用して値を取得すると、値はアナリティック・ワークスペース・オブジェクトとして格納されます。値をローカル変数や値セットにインポートすることはできません。

例10-171 ファイル・ユニット番号の保存

Data Reader文を使用して入力ファイルからデータを読み取るためのプログラムを作成するとします。最初にファイルを開いて、ファイルに割り当てられたファイル・ユニット番号の値を保存する必要があります。プログラムの先頭でunitというローカル変数を指定すると、ファイル・ユニット番号を保持できます。

DEFINE read.file PROGRAM
LD Read monthly sales data into the analytic workspace
PROGRAM
VARIABLE unit INTEGER
TRAP ON error
unit = FILEOPEN('sales.data' READ)
...

例10-172 ディメンション値を戻すプログラム

各地区の売上を分析し、売上が最高の地域の名前を返すプログラムを作成するとします。分析のために、このプログラムでは地区名を格納するローカル変数を定義します。プログラムが終了すると、ローカル変数の値が返されます。

DEFINE highsales PROGRAM
PROGRAM
VARIABLE districtname district
... "(statements that find the highest district)
RETURN districtname
END