JDeveloperでは、単一のIDEツールでPL/SQLおよびJavaストアド・プロシージャのデバッグをサポートしています。PL/SQLをデバッグする場合、デバッグするソース・コードがOracleデータベースに格納されている必要があります。Javaストアド・プロシージャの場合、ソース・コードがJDeveloperプロジェクト内にあり、コンパイル済コードがデータベースにデプロイされる必要があります。
また、デバッグ処理の開始方法は、ローカル・デバッグとリモート・デバッグのどちらを実行するかで異なります。PL/SQLをデバッグする場合、開始方法の違いは次のとおりです。
PL/SQLおよびJavaストアド・プロシージャのデバッグ情報は、スマート・データ・ウィンドウ、データ・ウィンドウ、監視式ウィンドウ、インスペクタ・ウィンドウ、スタック・ウィンドウおよびクラス・ウィンドウなどの、様々なJDeveloperデバッガ・ウィンドウで表示されます。スレッド・ウィンドウ、ヒープ・ウィンドウおよびモニター・ウィンドウは、PL/SQLコードのデバッグ時には使用できません。デバッガが生成するデバッグ情報についての説明を表示するには、[F1]を押すか、デバッガ・ウィンドウで「ヘルプ」をクリックしてください。
PL/SQLをデバッグする場合、監視式ウィンドウおよびインスペクタ・ウィンドウでPL/SQL式を使用できます。また、mytable(i*10)
のような表要素へのアクセスを含む条件付きブレークポイントも使用できます。この機能には、ファンクション、プロシージャ、パッケージおよびパッケージ本体で宣言された表も含まれます。
このトピックには、ローカルおよびリモートのPL/SQLプログラムとJavaストアド・プロシージャを、Oracleデータベースでデバッグする場合に適用される次のような情報が含まれます。
デバッグできるのは、PL/SQLをコールするPL/SQLプログラム、Javaストアド・プロシージャをコールするPL/SQL(Oracle9iリリース2(9.2)のデータベースのみ)、およびトリガーを起動するSQL文を発行するPL/SQLプログラムです。
PL/SQLのデバッグは、次のオブジェクトから開始できます。
その他のPL/SQLオブジェクトは、前提条件を満たし、前述のいずれかから開始された場合のみ、トレースできます。
Oracle9iリリース2(9.2)以上のデータベースに存在するPL/SQLコードのデバッグでは、デバッガによって、データベースの新規JPDA(Java Platform Debugger Architecture)実装が使用されます。JPDAはJavaのデバッグの業界標準で、データベースでのJPDA実装は、JavaおよびPL/SQLのシームレスなデバッグを可能にします。Oracle8iまたはOracle9iリリース1(9.0.1)のデータベースに存在するコードのデバッグでは、デバッガによって、異なるAPI(DBMS_DEBUG
パッケージ)が使用されます。このAPIを使用した場合、デバッガ・ウィンドウには詳細な情報が表示されません。
PL/SQLコードからのデバッグ情報がJDeveloperデバッガ・ウィンドウでどのように表示されるかは、使用するデータベースのバージョンによって異なります。JDeveloperのコード・エディタでのPL/SQLコードの編集は、データベースのバージョンにかかわらず同じです。
Oracle8iリリース8.1.7またはOracle9iリリース1(9.0.1)のデータベースのデバッグとOracle9iリリース2(9.2)のデータベースのデバッグの主な違いは次のとおりです。
次に、Oracle8iまたはOracle9iリリース1(9.0.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, 2004, Oracle. All rights reserved.