dポイントプレゼントキャンペーン実施中!

以下のPL/SQLで取ってきた値をログか何かで確認したいのですが、いい方法がありますか?
想像では5行目あたりにログはきだす記述をするのかなと思うのですが、方法がわかりません。
どなたか教えてください。

--------------------------------------------
1select count(*) into vn_CNT from t_ukerui
2where no_toi = :new.no_toi
3 and no_uke = :new.no_kyaku
4 and no_gyo = 1;
5
6if ( vn_CNT > 0 ) then
7
--------------------------------------------

A 回答 (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)

のように出力されます。

参考URL:http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …
    • good
    • 0
この回答へのお礼

詳しい説明ありがとうございました。
参考にさせて頂きます。

お礼日時:2005/04/18 11:04

dbms_output.put_line はvbでイミディエイトウィンドウにDebug.Printで表示するようなイメージですから、SQL*plusなどのツールでプロシージャを単体で実行する場合には有効ですが、コンパイル済みの実行モジュールから実行する場合は見れません。

ですからログを出力する方が良いでしょう。
今手元に資料が無いので書けませんが、ログ出力用の処理を作っておいて、各APから随時呼び出して出力するのが簡単です。

ただし、挙げておられる処理の件数が正しいか判断したいのであれば、やはり単体ステップでの検証を行うべきだと思うのですが... その方が効率的ですよね。
    • good
    • 0

デバッグするだけならば、dbms_output.put_line を使えば見れますが、ログが良いのでしょうか...



参考URLを参照願います。

参考URL:http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …

この回答への補足

回答ありがとうございます。
見るタイミングはVBのアプリケーション実行時にDBを更新します。更新したタイミングでトリガーが発生し、PL/SQL処理を走ります。そのPL/SQL処理時の値を見たいのです。
dbms_output.put_lineを入れた場合はアプリケーション実行時でも見れるか確認してみます。

補足日時:2005/04/09 01:02
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A