When a program, model, or input file is executing, the BADLINE option controls whether Oracle OLAP records, in the current outfile, the line that caused an error.
When an error occurs during the execution of a program, model, or input file, Oracle OLAP records in the current outfile the name of the program, model, or file in which the error occurred and the line that caused the error. When an error message is included in the output, the BADLINE information appears immediately after the error message.
(Default) When an error occurs in a program, model, or input file, Oracle OLAP does not record the error in the current outfile.
Example 5-4 Using the BADLINE Option
In a simple program called test
, the variable myint1
is divided by zero.
DEFINE test PROGRAM PROGRAM VARIABLE myint1 INTEGER VARIABLE myint2 INTEGER myint1 = 0 myint2 = 250/myint1 END
When you run the program when the DIVIDEBYZERO
option is set to NO
, then an error occurs because division by zero is not allowed. When BADLINE
is set to YES
, the following messages are recorded in the current outfile.
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
Example 5-5 Finding Errors in Program Lines
In a simple program called test
, the variable myint1
is divided by 0
(zero).
DEFINE test PROGRAM PROGRAM VARIABLE myint1 INTEGER VARIABLE myint2 INTEGER myint1 = 0 myint2 = 250/myint1 END
When you run the program, an error occurs because division by zero is not allowed (that is, when DIVIDEBYZERO is set to NO
).
When BADLINE is set to NO
only the error is recorded in the current outfile.
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.)
When BADLINE is set to YES
, the line that causes the error and the name of the program in which the error occurred are recorded in the current outfile.
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: