DBGOUTFILEコマンド(省略形はDOTF)は、デバッグ情報をファイルに送信するコマンドです。PRGTRACEおよびMODTRACEをYES
に設定すると、DBGOUTFILEにより生成されるファイルではプログラム、モデルまたは入力ファイルの各行とそれに対応する出力が併記されます。ECHOPROMPTをYES
に設定すると、デバッグ・ファイルにエラー・メッセージも含まれます。
パラメータ
現行のデバッグ・ファイルを閉じます。それにより、デバッグ出力がファイルへ送信されなくなります。
デバッグ出力をOracleのトレース・ファイルに送信するよう指定します。トレース・ファイルはTRACEFILEUNITオプションにより識別されます。
出力を既存のファイルの末尾に追加するかどうかを指定します。この引数を指定せず、指定された名前のファイルがすでに存在する場合は、ファイルの現在の内容が新しい出力に置き換えられます。
デバッグ出力が書き込まれるファイルの名前を表すテキスト式。そのファイルがカレント・ディレクトリにない場合、ファイルの名前にディレクトリ・オブジェクトの名前を含める必要があります。
注意: ディレクトリ・オブジェクトはデータベースで定義され、ディレクトリおよびディレクトリ内のファイルへのアクセスを制御します。CDA文を使用して、カレント・ディレクトリ・オブジェクトを特定および指定できます。使用するデータベース・ユーザー名で読取りおよび書込み可能なファイルがあるディレクトリ・オブジェクトへのアクセス権については、Oracle DBAに問い合せてください。 |
行が実行されるたびにOracle OLAPがデバッグ・ファイルに書き込むことを指定します。このキーワードを指定しなかった場合、Oracle OLAPでは、ファイルのI/Oアクティビティを軽減するため、テキストの保存およびファイルへの書込みが定期的に実行されます。
NOCACHEキーワードは処理速度を大幅に低下させますが、このキーワードにより、各行が実行された直後にデバッグ・ファイルに確実に記録されるようになります。特定の行の後で異常終了するプログラムをデバッグしているときは、NOCACHEを使用することで、実行されたすべての行を確認できます。
例
例9-76 デバッグ・ファイルを使用したデバッグ
次の文で、カレント・ディレクトリ・オブジェクト内にdebug.txt
という名前の便利なデバッグ・ファイルが作成されます。
PRGTRACE = yes ECHOPROMPT = yes DBGOUTFILE 'debug.txt'
これらの文を実行後、プログラムをいつもどおりに実行できます。デバッグ・ファイルを閉じるには、次の文を実行します。
DBGOUTFILE EOF
次のサンプル・プログラムでは、最初のLIMITコマンドに構文エラーがあります。
DEFINE ERROR_TRAP PROGRAM PROGRAM TRAP ON traplabel LIMIT month TO FIRST badarg LIMIT product TO FIRST 3 LIMIT district TO FIRST 3 REPORT sales traplabel: SIGNAL ERRORNAME ERRORTEXT END
PRGTRACE
とECHOPROMPT
の両方をYES
に設定し、DBGOUTFILE
でデバッグ出力をdebug.txt
というファイルに送信するように設定すると、error_trap
プログラムを実行した時点で次のテキストがdebug.txt
ファイルに送信されます。
(PRG= ERROR_TRAP) (PRG= ERROR_TRAP) TRAP ON traplabel (PRG= ERROR_TRAP) (PRG: ERROR_TRAP) LIMIT month TO FIRST badarg ERROR: BADARG does not exist in any attached database. (PRG= ERROR_TRAP) traplabel: (PRG= ERROR_TRAP) SIGNAL ERRORNAME ERRORTEXT ERROR: BADARG does not exist in any attached database.
例9-77 デバッグ情報のファイルへの送信
次に示すのは、最初のLIMITコマンドに構文エラーのあるプログラムのテキストです。
DEFINE error_trap PROGRAM PROGRAM TRAP ON traplabel LIMIT month TO FIRST BADARG LIMIT product TO FIRST 3 LIMIT district TO FIRST 3 REPORT sales traplabel: SIGNAL ERRORNAME ERRORTEXT END
次の文で、デバッグ情報がdebug.txt
というファイルに送信されます。
DBGOUTFILE 'debug.txt'
PRGTRACEとECHOPROMPTの両方をYES
に設定すると、Oracle OLAPでは、ERROR_TRAPプログラムが実行された時点で、次のテキストをdebug.txt
ファイルに送信します。ファイルの最後の行は、デバッグ情報の記録を終了するためのコマンドです。
error_trap (PRG= ERROR_TRAP) (PRG= ERROR_TRAP) trap on traplabel (PRG= ERROR_TRAP) (PRG: ERROR_TRAP) limit month to first badarg ERROR: BADARG does not exist in any attached workspace. (PRG= ERROR_TRAP) traplabel: (PRG= ERROR_TRAP) signal errorname errortext ERROR: BADARG does not exist in any attached workspace. dbgoutfile eof