ヘッダーをスキップ
Oracle® OLAP DMLリファレンス
11gリリース2 (11.2)
B61346-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

DBGOUTFILE

DBGOUTFILEコマンド(省略形はDOTF)は、デバッグ情報をファイルに送信するコマンドです。PRGTRACEおよびMODTRACEをYESに設定すると、DBGOUTFILEにより生成されるファイルではプログラム、モデルまたは入力ファイルの各行とそれに対応する出力が併記されます。ECHOPROMPTをYESに設定すると、デバッグ・ファイルにエラー・メッセージも含まれます。

構文

DBGOUTFILE {EOF | TRACEFILE | [APPEND] file-name [NOCACHE]}

パラメータ

EOF

現行のデバッグ・ファイルを閉じます。それにより、デバッグ出力がファイルへ送信されなくなります。

TRACEFILE

デバッグ出力をOracleのトレース・ファイルに送信するよう指定します。トレース・ファイルはTRACEFILEUNITオプションにより識別されます。

APPEND

出力を既存のファイルの末尾に追加するかどうかを指定します。この引数を指定せず、指定された名前のファイルがすでに存在する場合は、ファイルの現在の内容が新しい出力に置き換えられます。

file-name

デバッグ出力が書き込まれるファイルの名前を表すテキスト式。そのファイルがカレント・ディレクトリにない場合、ファイルの名前にディレクトリ・オブジェクトの名前を含める必要があります。


注意:

ディレクトリ・オブジェクトはデータベースで定義され、ディレクトリおよびディレクトリ内のファイルへのアクセスを制御します。CDA文を使用して、カレント・ディレクトリ・オブジェクトを特定および指定できます。使用するデータベース・ユーザー名で読取りおよび書込み可能なファイルがあるディレクトリ・オブジェクトへのアクセス権については、Oracle DBAに問い合せてください。

NOCACHE

行が実行されるたびに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

PRGTRACEECHOPROMPTの両方を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