OLAP DMLプログラムの内部では、VARIABLEコマンドは、OLAP DMLプログラムの内部で使用するローカル変数や値セットを宣言するコマンドです。ローカル変数はディメンションを保持できず、プログラムの実行中にのみ存在します。
パラメータ
ローカル変数または値セットの名前。既存のアナリティック・ワークスペース・オブジェクトと同じ名前を使用すると、アナリティック・ワークスペース・オブジェクトよりもローカル変数や値セットの方が優先されます。変数または値セットに値を割り当てると、その値はVARIABLE文が出現するプログラムの内部で使用できるようになります。変数または値セットに名前を付ける場合は、アナリティック・ワークスペース・オブジェクトのネーミング規則に従います(DEFINEコマンドを参照)。
格納されるデータの種類を示す変数のデータ型。DEFINE VARIABLEの項にリストおよび説明されている任意のデータ型を指定できます。また、プログラムが引数を特定のデータ型に変換することなく受け取ることができるようにする場合、そのデータ型のWORKSHEET
を指定することもできます。
nameが、指定したディメンションの単一の値を保持するリレーション変数であることを示します。この変数には、ディメンションの値または指定したディメンションの位置(INTEGER
)を格納できます。現在ディメンションに存在しない値を代入すると、エラーが発生します。
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) ...