PL/SQLデバッグの設定
Oracle DatabaseでPL/SQLプログラムをデバッグするには、次を実行する必要があります:
-
プログラムをデバッグできるようにデータベースの権限を付与します。
-
デバッグ情報付きでプログラムをコンパイルします。Oracle Developer Toolsの「Compile Debug」コマンドを使用すると、デバッグ情報付きでプログラムをコンパイルできます。
-
PL/SQLデバッグ・オプション・ページで、有効なIPアドレスとポート範囲を設定し、デバッグするPL/SQLコードを含むサーバー・エクスプローラ接続を指定します。
この項の内容は次のとおりです。
デバッグ用のデータベース権限の付与
PL/SQLのデバッグを実行するには、特定のデータベース権限が必要です。これらは、「Grant Debugging Privileges」ダイアログで簡単に付与できます。特定の権限は次のとおりです:
-
DEBUGCONNECTSESSION権限が必要です。これは、GRANTDEBUGCONNECTSESSIONTOusernameで付与できます。 -
デバッグ対象のPL/SQLプログラムに対して
DEBUGANYPROCEDURE権限、またはDEBUG権限とEXECUTE権限の両方が必要です。これらは、GRANTDEBUGANYPROCEDURETOusernameで付与できます。 -
Oracle Database 12.1以降では、Visual Studioがインストールされているコンピュータ上のIPアドレスおよびポート範囲への明示的なアクセス権をデータベースに付与する追加の権限が必要です。これらの権限は、「Grant Debugging Privileges」ダイアログまたは
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACEパッケージ・プロシージャをSYSDBAとして手動で実行することで付与できます。たとえば、SYSDBAとして次のコマンドを実行し、ホスト、下位ポート、上位ポートおよびプリンシパル名を置き換えます:
BEGIN DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE( HOST => '255.255.255.25', LOWER_PORT => 61000, UPPER_PORT => 65000, ACE => XS$ACE_TYPE(PRIVILEGE_LIST => XS$NAME_LIST('jdwp'), PRINCIPAL_NAME => 'HR', PRINCIPAL_TYPE => XS_ACL.PTYPE_DB)); END;この権限を取り消すには、次を実行します:
BEGIN DBMS_NETWORK_ACL_ADMIN.REMOVE_HOST_ACE( HOST => '255.255.255.25', LOWER_PORT => 61000, UPPER_PORT => 65000, ACE => XS$ACE_TYPE(PRIVILEGE_LIST => XS$NAME_LIST('jdwp'), PRINCIPAL_NAME => 'HR', PRINCIPAL_TYPE => XS_ACL.PTYPE_DB)); END;DBMS_NETWORK_ACL_ADMINパッケージの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。
PL/SQLデバッグ・オプションの設定
データベースからのデバッグ・セッション接続のために、Visual Studioでリスナーが起動されます。データベースがこのリスナーに接続できるようにするには、有効なIPアドレスとポート番号を指定する必要があります。また、Oracle Developer Toolsでは、デバッグ対象のPL/SQLコードを含むサーバー・エクスプローラ接続を認識する必要があります。これらの値はすべて、PL/SQLコンパイラ設定の「Options」ページで設定する必要があります。