出力パラメータがPL/SQLブロックに変数を移入することになっているストアドプロシージャを呼び出すことになっているPL/SQLブロックを実行しています。
プロシージャがコンパイルされ、PL/SQL ブロックが正常に実行されます。しかし、プロシージャによって入力された変数の値を確認したいと思います。これらの値を出力する方法はありますか?
それが役立つ場合、私は無料のTOADを使用しています。
ありがとう、
いくつかのオプションがあります:
私の好みは、かなり単純なカスタム ログ パッケージを使用してファイルにログを記録することです。私のカスタム ロギング パッケージには、ファイル ロギングと DBMS_OUTPUT ロギングを切り替える設定可能なフラグがあります。
Oracle のデバッグ API は非常に優れていますが、優れたデバッグ クライアントが必ず必要です。Oracle SQL Developer は、これをかなり適切にサポートしています。
log4plsql ロガーもありますが、私は使用していません。
dbms_output.put_line(varHere);
4 番目のオプション (私が通常デフォルトで使用するオプション) も存在します。デバッグ メッセージをデータベース テーブルに記録します。これにより、必要に応じてデバッグ メッセージを並べ替え、クエリ、フィルター処理できるという利点があります。
上記の darreljnz のように、log4plsql はおそらくデータベースへのロギングもサポートしています。1) dbms_output には制限が多すぎる 2) ファイルへのログ記録には多くの設定が必要であり、utl_file_dir パラメータがまだ設定されていない場合はデータベースの再起動が必要である 3) GUI を使用せずに dbms_debug を使用するのは非常に面倒です (しかし、私はやりました)
Oracle jDeveloper jDeveloper Home pageまたは Oracle Visual Studio add in VS Pluginのコピーをダウンロードできる場合。どちらも無料で、データベース上の PL/SQL でデバッグ (ブレークポイントの設定、変数の検査など) を行うことができます。これを行うには、DB に対する「デバッグ」権限も必要です。ただし、dba 権限を持っている場合は、それを付与できます。