- ベストアンサー
PL/SQLでログを確認したい
- PL/SQLでログを確認する方法について教えてください。
- 上記のPL/SQLコードでログを取得する方法を教えてください。
- ログを確認するための効果的な方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
参考URLをみていただければ分かりますが。 例えば、サーバのDドライブのtempフォルダにtest.txtというログファイルを出力するのであれば。 -------------------------------------------------- OUT_FILE UTL_FILE.FILE_TYPE; BEGIN OUT_FILE := UTL_FILE.FOPEN('d:\temp', 'test.txt','A'); EXCEPTION WHEN OTHERS THEN OUT_FILE := UTL_FILE.FOPEN('d:\temp', 'test.txt','W'); END; UTL_FILE.PUT_LINE(OUT_FILE,'(vn_CNT = ' || vn_CNT || ')'); UTL_FILE.FCLOSE(OUT_FILE); -------------------------------------------------- こんな感じでしょうか。 ログファイルがあれば追加、なければ新規で作成、件数のメッセージを一行書いて、最後にクローズしています。 これを実行すると、 (vn_CNT = 1) (vn_CNT = 5) (vn_CNT = 0) のように出力されます。
その他の回答 (2)
- j-h-smith
- ベストアンサー率39% (133/333)
dbms_output.put_line はvbでイミディエイトウィンドウにDebug.Printで表示するようなイメージですから、SQL*plusなどのツールでプロシージャを単体で実行する場合には有効ですが、コンパイル済みの実行モジュールから実行する場合は見れません。ですからログを出力する方が良いでしょう。 今手元に資料が無いので書けませんが、ログ出力用の処理を作っておいて、各APから随時呼び出して出力するのが簡単です。 ただし、挙げておられる処理の件数が正しいか判断したいのであれば、やはり単体ステップでの検証を行うべきだと思うのですが... その方が効率的ですよね。
- j-h-smith
- ベストアンサー率39% (133/333)
デバッグするだけならば、dbms_output.put_line を使えば見れますが、ログが良いのでしょうか... 参考URLを参照願います。
補足
回答ありがとうございます。 見るタイミングはVBのアプリケーション実行時にDBを更新します。更新したタイミングでトリガーが発生し、PL/SQL処理を走ります。そのPL/SQL処理時の値を見たいのです。 dbms_output.put_lineを入れた場合はアプリケーション実行時でも見れるか確認してみます。
お礼
詳しい説明ありがとうございました。 参考にさせて頂きます。