3.7 PL/SQLオブジェクトのデバッグ

SQL Developer for VS CodeのPL/SQLデバッガを使用して、PL/SQLファンクションおよびプロシージャをデバッグできます。

この項の内容は次のとおりです。

3.7.1 必須のデバッグ・データベース権限

PL/SQLオブジェクトをデバッグするには、次の権限が必要です:

DEBUG CONNECT SESSION

また、デバッグ・セッションの開始または停止に使用されるパッケージであるSYS.DBMS_DEBUG_JDWPに対するDEBUGおよびEXECUTE権限も必要です。

デバッグするPL/SQLオブジェクトが自分に属している場合、それ以上の権限は必要ありません。

PL/SQLオブジェクトが自分に属していない場合は、PL/SQLオブジェクトに対するDEBUGおよびEXECUTE権限が付与されている必要があります。

3.7.2 データベース・デバッグ・セッションの理解

データベース・セッションの場合、ネットワーク接続はクライアント(SQL Developer for VS Code)によって開始され、サーバー(Oracle Database)によってアドレス指定されます。データベース・デバッグ・セッションの場合、SQL Developer for VS Codeはデバッグ・サーバーとして機能し、デバッグ・クライアント(Oracle Database)からの接続をリスニングします。

データベースは、SQL Developer for VS Codeへの接続を開始する必要があります。これを実現するには:

  • データベースからSQL Developer for VS Codeへのネットワーク・アクセスを許可するようにデータベースを構成する必要があります。これは、ネットワーク・アクセス制御リスト(ACL)にエントリを作成することにより実現されます。
  • ネットワークACLでは、SQL Developer for VS Codeがデバッグ接続をリスニングするために使用するIPアドレス(またはホスト名)とポートを指定する必要があります。
  • データベースからSQL Developer for VS Codeへのネットワーク・ルートが必要です。たとえば、SQL Developer for VS Codeが実行されているマシン上のファイアウォールが、Oracle Databaseからの受信接続を許可するように構成されている必要がある場合があります。または、Oracle DatabaseがDockerコンテナ内で実行されている場合は、DockerコンテナとSQL Developer for VS Codeが実行されているマシンとの間にルートを作成するために、コンテナのネットワーク構成を調整する必要がある場合があります。

SQL Developer for VS Codeを使用すると、データベースがSQL Developer for VS Codeに接続するために必要なACLにエントリを追加できます。

  1. 「接続」パネルから、デバッグするPL/SQLオブジェクトを開き、ワークシート・エディタ・パネルの上部にあるツールバーの「デバッグ」アイコンをクリックします。

  2. 表示されるエディタ・ペインで、ACLの表示をクリックします。

    ネットワークACLの構成
  3. データベースがSQL Developer for VS Codeへの接続に使用するIPアドレスを指定するよう要求されます。推奨のいずれかを選択するか、独自のものを入力します。

    ACLでエントリを追加するために必要なPL/SQLコード・ブロックが表示されます。

    ノート:

    PL/SQLブロックは、DBA権限を持つユーザーが実行する必要があります。
    PL/SQLコード・ブロック

3.7.3 PL/SQLオブジェクトのデバッグ

この項では、PL/SQLオブジェクトをデバッグするステップについて説明します。
  1. PL/SQLオブジェクトをデバッグする前に、生成されたデバッグ記号を使用してコンパイルする必要があります。PL/SQLエディタでPL/SQLオブジェクトを開き、PL/SQLエディタ・ツールバーの「デバッグ用にコンパイル」アイコンをクリックします。
  2. デバッグ用にPL/SQLオブジェクトをコンパイルした後、PL/SQLオブジェクト内の任意の実行可能行にブレークポイントを設定できます。ブレークポイントを構成するには、行番号の左余白で、赤いドットが表示されるまでマウスを合せてから、クリックしてブレークポイントを設定します。
    ブレーク・ポイントの構成
  3. PL/SQLオブジェクトをデバッグするには、「実行」アイコンを展開し、「デバッグ」をクリックします。表示されるエディタ・ペインで、PL/SQLオブジェクトを起動するために必要な引数(ある場合)の値を指定します。
    入力値の入力
  4. 「デバッグ」をクリックします。

    要求された場合は、データベースがSQL Developer for VS Codeへの接続に使用するIPアドレスを確認します。

    PL/SQLオブジェクトの実行は、最初に検出されたブレークポイントで一時停止します。

    ブレークポイント一時停止
    デバッグ・ツールバーのアイコンを使用すると、次のことができます:
    • ステップ・オーバー: 次の文に移動します。
    • ステップ・イン: 現在の文を開いてデバッグします。
    • 続行: 実行を再開します。
    • 停止: デバッグを停止します。

    左側のコール・スタック・パネルを使用して、コール・スタックを上下に移動できます。「変数」パネルで変数を検査できます。