Oracle PL/SQL コードのデバッグ
データベースツールと SQL プラグインを有効にする
この機能は、PhpStorm にデフォルトでバンドルされ有効になっているデータベースツールと SQL プラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。
Ctrl+Alt+S を押して設定を開き、を選択します。
インストール済みタブを開き、データベースツールおよび SQL プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。
デバッガーは、DBMS_DEBUG パッケージの API を使用する Oracle プローブに基づいており、Oracle サーバー 9.0 以降で動作するはずです。
Oracle では、次のプログラムユニット(PL/SQL プログラム)をデバッグできます: 匿名ブロック、パッケージ、プロシージャ、関数、トリガー。
ステップ 1. PL/SQL オブジェクトを作成する
Oracle データソースを右クリックし、を選択します。
または、クエリコンソールリスト (Ctrl+Shift+F10) から既存のクエリファイルの 1 つを選択します。
クエリファイルにコードを入力または貼り付けます。
実行ボタン
をクリックするか、Ctrl+Enter を押して手順コードを実行します。
その結果、作成されたオブジェクトがデータベースツールウィンドウ () に表示されます。

プロシージャのコードスニペット:
ステップ 2. デバッグオプションを使用して PL/SQL オブジェクトをコンパイルする
PL/SQL コードのデバッグを有効にするには、DEBUG オプションを使用してコンパイルする必要があります。コンパイルのプロセスにより、PL/SQL コードが Pro * C に変換され、Pro * C が Oracle 共有ライブラリにコンパイルされます。コンパイルは、Oracle インタープリターがコードをより高速に処理できます。
デバッグする PL/SQL オブジェクトを右クリックし、を選択します。
再コンパイルダイアログで、DEBUG オプションを使用を選択します。
OK をクリックします。

ステップ 3. PL/SQL プログラムユニットのデバッグ
無名ブロックを介した PL/SQL プロシージャおよびファンクションのデバッグ
PL/SQL プログラムユニットは、コードをブロックに編成します。名前のないブロックは、匿名ブロックです。匿名ブロックは、Oracle データベースには保存されません。デバッグプロセスでは、匿名ブロックを使用してパラメーターの値を渡します。
プロシージャ、パッケージ、関数をデバッグするには、必要なルーチンを呼び出す匿名ブロックを作成します。
データベースツールウィンドウで、デバッグ用に作成およびコンパイルした PL/SQL オブジェクトをダブルクリックします。
プロシージャの実行ボタン
をクリックします。セッションが選択されていない場合は、リストからセッションを選択します。セッション管理の詳細については、「セッション」を参照してください。
ルーチンの実行ダイアログから、匿名ブロックをコピーしてクエリファイルに貼り付けます。
匿名ブロックと、この匿名ブロックで参照される PL/SQL プログラムオブジェクトにブレークポイントを配置します。
(オプション)パラメーター値を変更します。
デバッグをクリックします。
プロシージャのコードスニペット:
無名ブロックを介した PL/SQL パッケージのデバッグ
パッケージは、論理的に関連する PL/SQL タイプ、アイテムおよびサブプログラムをグループ化するスキーマオブジェクトです。
プロシージャや関数と同様に、パッケージをデバッグするには、必要なルーチンを呼び出す匿名ブロックを作成します。
パッケージにブレークポイントを配置します。
Oracle データソースを右クリックし、を選択します。
または、クエリコンソールリスト (Ctrl+Shift+F10) から既存のクエリファイルの 1 つを選択します。
Oracle クエリファイルで、プロシージャをトリガーする匿名ブロックを記述します。
デバッグをクリックします。
パッケージのコードスニペット:
匿名ブロックのコードスニペット:
クエリを介した PL/SQL トリガーのデバッグ
トリガーは、INSERT、UPDATE、DELETE クエリを発行したときに DBMS によって自動的に呼び出される PL/SQL プログラムユニットです。トリガーはテーブルに関連付けられており、データ行を挿入、更新、削除する前または後に呼び出されます。テーブルには複数のトリガーを設定できます。
トリガーをデバッグするには、テーブルまたはビューに INSERT、UPDATE、DELETE クエリを書き込みます。
Oracle データソースを右クリックし、を選択します。
または、クエリコンソールリスト (Ctrl+Shift+F10) から既存のクエリファイルの 1 つを選択します。
クエリファイルにクエリを入力します。
トリガーにブレークポイントを配置します。
デバッグをクリックします。
トリガーのコードスニペット:
ステップモード
PL/SQL コードをデバッグするとき、グレースフルおよびネイティブの 2 つのステップモードから選択できます。
グレースフルモードでは、デバッグするセッション(ターゲットセッション)を一時停止し、ブレークポイントを設定および削除できます。有効なブレークポイントが設定されていない場合、デバッガーは行単位でコードをステップ実行します。
ネイティブモードでは、デバッガーは Oracle ネイティブデバッグコマンドを使用します。ターゲットセッションを一時停止したり、ブレークポイントを管理したりすることはできませんが、CPU 負荷の高い操作(多くの計算やループを含む操作)ではパフォーマンスが向上する可能性があります。Oracle デバッグコマンドの詳細については、Oracle の公式ドキュメント(英語)を参照してください。有効なブレークポイントが設定されていない場合、デバッガーはルーチン全体を実行します。
ステップモードを変更する
設定を開き(Ctrl+Alt+S)、に移動します。
ステップモードリストから、必要なステップモードを選択します。
デバッグ可能なコードの先頭で一時停止
デバッグ可能なコードの最初でデバッガーを一時停止させることができます。デバッガーが一時停止する場所は自動的に検出されます。宣言セクションで変数値を割り当てると、デバッガーは変数宣言で一時停止します。変数に値が割り当てられていない場合、デバッガーは宣言セクションをスキップし、実行セクションの BEGIN キーワードで一時停止します。
設定を開き(Ctrl+Alt+S)、に移動します。
開始時に一時停止を選択します。
関連ページ:
セッション
データベースツールと SQL プラグインを有効にするこの機能は、PhpStorm にデフォルトでバンドルされ有効になっているデータベースツールと SQL プラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。を押して設定を開き、を選択します。インストール済みタブを開き、データベースツールおよび SQL プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。PhpStorm では、データベースへの接続は特別なラッパー、つ...
SQL ファイルの実行
データベースツールと SQL プラグインを有効にするこの機能は、PhpStorm にデフォルトでバンドルされ有効になっているデータベースツールと SQL プラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。を押して設定を開き、を選択します。インストール済みタブを開き、データベースツールおよび SQL プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。実行構成を使用して、選択したデータベースまたはスキーマに対して...
データエディターとビューアー
データベースツールと SQL プラグインを有効にするこの機能は、PhpStorm にデフォルトでバンドルされ有効になっているデータベースツールと SQL プラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。を押して設定を開き、を選択します。インストール済みタブを開き、データベースツールおよび SQL プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。概要:データエディターとビューアー、またはデータエディターは、...