JDeveloperでは、PL/SQLとJavaストアド・プロシージャのデバッグをどちらも1つのIDEツールでサポートしています。PL/SQLをデバッグする場合は、デバッグ対象のソース・コードがOracleデータベースに格納されている必要があります。Javaストアド・プロシージャの場合は、ソース・コードをJDeveloperプロジェクト内に置き、コンパイル後のコードをデータベースにデプロイする必要があります。
また、デバッグ・アクションの開始方法は、ローカル・デバッグとリモート・デバッグのどちらを実行するかに応じて異なります。PL/SQLをデバッグする場合、開始方法の違いは次のとおりです。
PL/SQLおよびJavaストアド・プロシージャのデバッグ情報は、「スマート・データ」、「データ」、「監視式」、「インスペクタ」、「スタック」および「クラス」など、各種のJDeveloperデバッガ・ウィンドウに表示されます。「スレッド」ウィンドウ、「ヒープ」ウィンドウおよび「モニター」ウィンドウは、PL/SQLコードのデバッグ時には利用できません。デバッガ・ウィンドウで[F1]を押すか「ヘルプ」をクリックすると、デバッガにより生成されるデバッグ情報に関する注意事項が表示されます。
PL/SQLのデバッグ時に、mytable(i*10)
のような表要素へのアクセスなど、条件ブレークポイントのみでなく、ユーザーは「監視式」および「インスペクタ」ウィンドウでPL/SQL式を使用できます。この機能には、ファンクション、プロシージャ、パッケージおよびパッケージ本体で宣言される表が含まれます。
このトピックでは、Oracleデータベースにおけるローカルおよびリモート両方のPL/SQLプログラムとJavaストアド・プロシージャのデバッグに該当する情報を示します。
PL/SQLをコールするPL/SQLプログラム、Javaストアド・プロシージャをコールするPL/SQL(Oracle9iリリース2データベースのみ)、トリガーを起動するSQL文を発行するPL/SQLプログラムをデバッグできます。
次のオブジェクトからPL/SQLのデバッグを開始できます。
他のPL/SQLオブジェクトも、前提条件を満たしており、前述のいずれかから起動されるPL/SQLオブジェクトであれば、すべてトレースできます。
Oracle9i リリース2以降のデータベースに常駐するPL/SQLコードをデバッグする場合、デバッガではデータベースの新規JPDA(Javaプラットフォーム・デバッガ・アーキテクチャ)実装を使用します。JPDAはJavaデバッグの業界標準であり、データベースのJPDA実装によりJavaとPL/SQLをシームレスにデバッグできます。Oracle8i またはOracle9i リリース1データベースに常駐するコードをデバッグする場合、デバッガでは異なるAPI(DBMS_DEBUG
パッケージ)を使用します。このパッケージの場合、デバッガ・ウィンドウにはあまり詳細な情報が表示されません。
JDeveloperデバッガ・ウィンドウでは、PL/SQLコードからのデバッグ情報の表示状態がデータベースのバージョンに応じて異なります。ただし、JDeveloperのエディタでPL/SQLコードを編集する操作は、データベースのバージョンに関係なく同一です。
Oracle8i リリース8.1.7またはOracle9i リリース1データベースでのデバッグと、Oracle9i リリース2およびOracle10g データベースでのデバッグの、主な相違点は次のとおりです。
Oracle8i またはOracle9i リリース1データベースに対するデバッグ時には、次の問題が発生します。これらは、以前のAPIの制限事項であり、修正の予定はありません。
「データ」ウィンドウ、「監視式」ウィンドウおよび「インスペクタ」ウィンドウなど、JDeveloperのデータ関連ウィンドウには、NUMBERやVARCHAR2などのスカラー型の変数を表示できます。次のように、より複雑な他の型も表示されます。
my_rec.my_field
など)を表示することはできます。
DBMS_DEBUG_JDWP.CONNECT_TCP( <host_name>, <port> )
ローカル・デバッグの場合は、このコマンドがJDeveloperにより発行されます。リモート・デバッグの場合は、このコマンドをデバッグ対象のPL/SQLのコールに使用するのと同じセッションで発行する必要があります。
v_value
やV_Value
のように、大/小文字を区別せずにローカル変数を入力できます。パッケージ変数にも大/小文字区別はありませんが、変数名の前の接頭辞には、次のように大/小文字区別があります。
$Oracle.Package.SCOTT.MY_PACKAGE.g_var
「監視式」ウィンドウにパッケージ変数を追加する最も簡単な方法は、「データ」ウィンドウから変数をドラッグ・アンド・ドロップするか、「クラス」ウィンドウからパッケージをドラッグ・アンド・ドロップすることです。
関連項目
Copyright © 1997, 2007, Oracle. All rights reserved.