The PRGTRACE option controls whether each line of a program is recorded in the current outfile or in a debugging file during execution of the program. PRGTRACE is primarily used as a debugging tool to uncover problems by tracing the execution of a program.
OLAP DML programs provided as OLAP DML statements are not traced unless EXPTRACE is set to YES
.
When you have used a DBGOUTFILE statement to specify a debugging file, Oracle OLAP sends PRGTRACE output to the debugging file instead of the current outfile.
Oracle OLAP records each line in a program before it is executed.
(Default) Oracle OLAP does not record each line in a program.
PRGTRACE records the name of the current program at the beginning of each program line. It includes an equals sign to indicate a compiled line.
(PRG= SALESREP) . . .
It includes a colon to indicate an uncompiled line.
(PRG: SALESREP) . . .
A compiled line is a line that has been translated into an efficient internal form, whereas an uncompiled line has not. Oracle OLAP ordinarily stores lines in compiled form to make programs work more efficiently, especially programs that contain loops.
Oracle OLAP compiles a program before running it. Therefore, the only lines that are marked as uncompiled in the PRGTRACE output are lines that cannot be compiled, such as lines that include ampersand substitution.
Example 5-91 Tracing Program Execution
Suppose you have a program called salesrep
that produces a simple budget report.
DEFINE salesrep PROGRAM PROGRAM PUSH month division line TRAP ON cleanup LIMIT month TO &ARGS LIMIT division TO ALL LIMIT line TO FIRST 1 REPORT DOWN division across month: dec 0 budget cleanup: POP month division line END
When you want to debug this program, you can trace the execution of each of its lines by turning on PRGTRACE and executing the program.
PRGTRACE = yes salesrep FIRST 3
PRGTRACE produces the following output in the current outfile or debugging file.
(PRG= SALESREP) push month division line (PRG= SALESREP) trap on cleanup (PRG: SALESREP) limit month to &args (PRG= SALESREP) limit division to all (PRG= SALESREP) limit line to first 1 (PRG= SALESREP) report down division across month: dec0 budget LINE: REVENUE -------------BUDGET------------- -------------MONTH-------------- DIVISION JAN95 FEB95 MAR95 -------------- ---------- ---------- ---------- CAMPING 679,149 707,945 780,994 SPORTING 482,771 517,387 525,368 CLOTHING 983,888 1,016,528 992,331 (PRG= SALESREP) cleanup: (PRG= SALESREP) pop month division line