BADLINEオプションは、プログラム、モデルまたは入力ファイルの実行時に、Oracle OLAPがエラーの原因となる行を現行の出力ファイルに記録するかどうかを制御するオプションです。
パラメータ
プログラム、モデルまたは入力ファイルの実行時にエラーが発生すると、Oracle OLAPは、エラーが発生したプログラム、モデルまたはファイルの名前とエラーが発生した行を現行の出力ファイルに記録します。エラー・メッセージが出力ファイルに記録されると、BADLINE情報がエラー・メッセージの直後に表示されます。
(デフォルト)プログラム、モデルまたは入力ファイルにエラーが発生した場合、Oracle OLAPはエラーを現行の出力ファイルに記録しません。
例
例5-4 BADLINEオプションの使用
test
という簡単なプログラムで、変数myint1
を0(ゼロ)で除算します。
DEFINE test PROGRAM PROGRAM VARIABLE myint1 INTEGER VARIABLE myint2 INTEGER myint1 = 0 myint2 = 250/myint1 END
DIVIDEBYZERO
オプションをNO
に設定してプログラムを実行すると、ゼロでは除算ができないため、エラーが発生します。BADLINE
をYES
に設定すると、現行の出力ファイルに次のメッセージが記録されます。
ERROR: (MXXEQ01) A division by zero was attempted. Set DIVIDEBYZERO to YES if you want NA to be returned as the result of division by zero. In DEMO!TEST PROGRAM: myint2 = 250/myint1
例5-5 プログラム行のエラー検出
test
という簡単なプログラムで、変数myint1
を0
(ゼロ)で除算します。
DEFINE test PROGRAM PROGRAM VARIABLE myint1 INTEGER VARIABLE myint2 INTEGER myint1 = 0 myint2 = 250/myint1 END
このプログラムを実行すると、ゼロでは除算できない(DIVIDEBYZEROがNO
に設定されている)ため、エラーが発生します。
BADLINEをNO
に設定すると、現行の出力ファイルにはエラーのみが記録されます。
ERROR: (MXXEQ01) A division by zero was attempted. (If you want NA to be returned as the result of a division by zero, set the DIVIDEBYZERO option to YES.)
BADLINEをYES
に設定すると、エラーが発生する行と、エラーが発生するプログラムの名前が現行の出力ファイルに記録されます。
ERROR: (MXXEQ01) A division by zero was attempted. (If you want NA to be returned as the result of a division by zero, set the DIVIDEBYZERO option to YES.) In TESTBAD PROGRAM: myint2 = 250/myint1 In EDDE.RUNCMD PROGRAM: