Oracle PL/SQL コードのデバッグ
データベースツールと SQL プラグインを有効にする
この機能は、IntelliJ IDEA にバンドルされており、デフォルトで有効になっているデータベースツールと 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 を押して手順コードを実行します。
その結果、作成されたオブジェクトがデータベースツールウィンドウ ( ) に表示されます。
![PL/SQL オブジェクトを作成する Create a PL/SQL object](https://resources.jetbrains.com/help/img/idea/2024.1/pl_sql_debugging_create_procedure.png)
プロシージャのコードスニペット:
ステップ 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)、
に移動します。開始時に一時停止を選択します。
関連ページ:
![](https://resources.jetbrains.com/help/img/idea/2024.1/db_services_tool_window_db.png)
セッション
データベースツールと SQL プラグインを有効にするこの機能は、IntelliJ IDEA にバンドルされており、デフォルトで有効になっているデータベースツールと SQL プラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。を押して設定を開き、を選択します。インストール済みタブを開き、データベースツールおよび SQL プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。IntelliJ IDEA では、データベース...
![](https://resources.jetbrains.com/help/img/idea/2024.1/db_run_debug_configurations_script_files.png)
SQL ファイルの実行
データベースツールと SQL プラグインを有効にするこの機能は、IntelliJ IDEA にバンドルされており、デフォルトで有効になっているデータベースツールと SQL プラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。を押して設定を開き、を選択します。インストール済みタブを開き、データベースツールおよび SQL プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。実行構成を使用して、選択したデータベースまたは...
![](https://resources.jetbrains.com/help/img/idea/2024.1/data_editor_db_object_data_intro.png)
データエディターとビューアー
データベースツールと SQL プラグインを有効にするこの機能は、IntelliJ IDEA にバンドルされており、デフォルトで有効になっているデータベースツールと SQL プラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。を押して設定を開き、を選択します。インストール済みタブを開き、データベースツールおよび SQL プラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。概要:データエディターとビューアー、またはデ...