デバッグ情報の確認

Oracle PL/SQLデバッガをブレーク・モードで使用すると、Visual Studioのデバッグ・ウィンドウを通じてデバッグ情報を確認できます。この項では、異なるコンテキストでの変数のウォッチに使用するウィンドウについて説明します。次にOracle PL/SQLデバッグで使用する他のウィンドウについて説明し、サポートされていないデバッグ・ウィンドウをリストします。

変数のウォッチ

この項では、情報のウォッチまたは値の評価に使用するウィンドウについて説明します。次に、コンパイルに関する特別な要件やサポートされるデータ型など、すべてのウィンドウに共通の情報について説明します。

  • ウォッチ・ウィンドウ

    PL/SQLプログラムの変数またはパラメータを評価または変更できます。

    次の2つの方法でウォッチ・ウィンドウに変数を追加できます:

    • ウォッチ・ウィンドウの「Name」列で空白の行をダブルクリックし、選択した行に変数名を入力して[Enter]キーを押します。

    • PL/SQLプログラム・ソース・ウィンドウで、PL/SQLの変数にカーソルを置き、PL/SQLプログラム・ソース・ウィンドウ上で右クリックしてメニューから「Add Watch」を選択します。

    ウォッチ・ウィンドウにアクセスするには、「Debug」メニューから「Window」を選択してウォッチ・ウィンドウを選択してください。

  • クイックウォッチ・ダイアログ・ボックス

    クイックウォッチ・ダイアログ・ボックスを使用すると、PL/SQLプログラムの単一の変数またはパラメータを簡単に評価または変更できます。

    クイックウォッチ・ウィンドウにアクセスするには、ソース・ウィンドウでPL/SQL変数にカーソルを置き、ウィンドウを右クリックしてメニューから「QuickWatch」を選択します。

  • ローカル・ウィンドウ

    ローカル・ウィンドウを使用すると、PL/SQLプログラムのローカル変数またはローカル・パラメータを表示できます。

    ローカル・ウィンドウにアクセスするには、「Debug」メニューから「Window」を選択してローカル・ウィンドウを選択してください。

  • 自動変数ウィンドウ

    自動変数ウィンドウを使用すると、現在の文および以前の文で使用している変数を表示できます。

    自動変数ウィンドウにアクセスするには、「Debug」メニューから「Window」を選択して自動変数ウィンドウを選択してください。

オブジェクト、VARRAYおよびネストした表タイプの評価

デバッグ情報付きでオブジェクトをコンパイルして、デバッガでオブジェクトの値を評価できるようにします。

サーバー・エクスプローラから、「User Defined Types」ノードを展開し、オブジェクト・タイプ・ノードを右クリックし、「Compile Debug」を選択するか、オブジェクト・タイプの仕様または本体を表示するPL/SQLエディタを右クリックしてメニューから「Compile Debug」を選択します。

パッケージ変数の評価

パッケージ変数を評価するには、パッケージをデバッグ情報付きでコンパイルする必要があります。

サーバー・エクスプローラから、コンパイルするプログラムを含むノードを展開して、このプログラムを右クリックすると、メニューから「Compile Debug」を選択します。

評価されないデータ型

次のデータ型は評価できません:

  • REF CURSOR

  • SYS_REFCURSORなど、事前定義された弱い型指定のREF CURSOR

  • REFオブジェクト

  • CURSOR

  • XMLType

  • ANYTYPE

Oracle変数の型

ここで説明するウィンドウ(ウォッチ・ウィンドウ、クイックウォッチ・ダイアログ・ボックス、ローカル・ウィンドウ、自動変数ウィンドウ)には、次のようにウォッチされる変数の名前、値、型が表示されます:

  • Oracleスカラー型:

    この型にはデータ型の名前が含まれています。

  • 複合データ型:

    複合データ型の値はツリー・ビューとして展開できます。

    複合データ型の属性:

    各属性およびメンバーの名前、値、型が含まれています。

  • Oracleパッケージ変数:

    パッケージはツリー・ビューとして展開できます。各パッケージ変数の名前、値、型がパッケージ・ノードの下に含まれています。

ノート:

変数やパラメータの値の表示形式は、データベースのNLS設定に基づきます。

ローカル、ウォッチ、クイックウォッチおよび自動変数の各ウィンドウでサポートされるデータ型

次の表に、ローカル、ウォッチ、クイックウォッチおよび自動変数の各ウィンドウでサポートされるデータ型と、対応する型および値の表示形式を示します。

表7-1にスカラー型を示します。

表7-1 スカラー型

データ型 型の情報 値の表示形式

BINARY_INTEGER

PLS_INTEGER

数値文字列

BOOLEAN

BOOLEAN

truefalseまたはNULL

BINARY_FLOAT

BINARY_FLOAT

数値文字列

BINARY_DOUBLE

BINARY_DOUBLE

数値文字列

DEC

NUMBER(Precision, Scale)

NLS_NUMERIC_CHARACTERSを使用した数値文字列値

DECIMAL

NUMBER(Precision, Scale)

NLS_NUMERIC_CHARACTERSを使用した数値文字列値

DOUBLE PRECISION

NUMBER(Precision, Scale)

NLS_NUMERIC_CHARACTERSを使用した数値文字列値

FLOAT

FLOAT(Binary precision)

NLS_NUMERIC_CHARACTERSを使用した数値文字列値

INT

NUMBER(Precision, Scale)

NLS_NUMERIC_CHARACTERSを使用した数値文字列値

INTEGER

NUMBER(Precision, Scale)

NLS_NUMERIC_CHARACTERSを使用した数値文字列値

NATURAL

PLS_INTEGER

数値文字列

NATURALN

PLS_INTEGER

数値文字列

NUMBER

NUMBER(Precision, Scale)

NLS_NUMERIC_CHARACTERSを使用した数値文字列値

NUMERIC

NUMBER(Precision, Scale)

NLS_NUMERIC_CHARACTERSを使用した数値文字列値

PLS_INTEGER

PLS_INTEGER

数値文字列

POSITIVE

PLS_INTEGER

数値文字列

POSITIVEN

PLS_INTEGER

数値文字列

REAL(Float(63))

NUMBER(Precision, Scale) /FLOAT(Binary precision)

NLS_NUMERIC_CHARACTERSを使用した数値文字列値

SIGNTYPE

PLS_INTEGER

数値文字列

SMALLINT

NUMBER(Precision, Scale)

NLS_NUMERIC_CHARACTERSを使用した数値文字列値

CHAR

CHAR(Length)

文字列値

CHARACTER

CHAR(Length)

文字列値

LONG

LONG(Max.Length)

文字列値

LONGRAW

LONGRAW(Max.Length)

文字列値

MSLABEL

MSLABEL(Max.Length)

文字列値

NCHAR

NCHAR(Length)

文字列値

NVARCHAR2

NVARCHAR2(Max.Length)

文字列値

RAW

RAW(Max.Length)

文字列値

UROWID

UROWID

文字列値

ROWID

ROWID

文字列値

STRING

VARCHAR2(Max.Length)

文字列値

VARCHAR

VARCHAR(Max.Length)

文字列値

VARCHAR2

VARCHAR2(Max.Length)

文字列値

DATE

DATE

NLS_TIMESTAMP_FORMATを使用した文字列値

TIMESTAMP

TIMESTAMP(Seconds Precision)

NLS_TIMESTAMP_FORMATを使用した文字列値

TIMESTAMP WITH LOCAL TIME ZONE

TIMESTAMP_WITH_LOCAL_TIME_ZONE(Seconds Precision)

NLS_TIMESTAMP_FORMATを使用した文字列値

TIMESTAMP WITH TIME ZONE

TIMESTAMP_WITH_TIME_ZONE(Seconds Precision)

NLS_TIMESTAMP_TZ_FORMATを使用した文字列値

INTERVAL DAY TO SECOND

INTERVAL_DAY_TO_SECOND(Days Precision, Seconds Precision)

文字列値

INTERVAL_YEAR_TO_MONTH

INTERVAL YEAR TO MONTH(Years Precision)

文字列値

表7-2に複合データ型を示します。

表7-2 複合データ型

データ型 型の情報 値の表示形式

OBJECT

オブジェクト型の名前(PERSONTYPEなど)

オブジェクト型を展開して属性の値を表示できます

RECORD

レコード・タイプ名

レコード・タイプを展開して属性の値を表示できます

ASSOCIATE ARRAY

結合配列型の名前

配列型を展開して要素の値を表示できます

VARRAY

オブジェクト・タイプ名

配列型を展開して要素の値を表示できます

NESTED TABLE

オブジェクト・タイプ名

配列型を展開して要素の値を表示できます

表7-3にLOB型を示します。

表7-3 LOB型

データ型 型の情報 値の表示形式

BFILE

BFILE

255バイトの値

BLOB

BLOB

255バイトの値

CLOB

CLOB

255文字の値

NCLOB

NCLOB

255文字の値

PL/SQL変数およびパラメータの評価および変更

ウォッチ・ウィンドウでは、PL/SQL変数の評価に加え、変数の値の変更を行うこともできます。次の例のように、値を表示して編集できます。[Enter]キーを押すと変数の値が指定した値に変更されます:

スカラー型:

x Number(4,2)

複合型:

create type personType as object (
  name varchar2(128),
  age NUMBER(4)
) NOT FINAL;

x persontype;

xを展開すると、デバッガにxの属性情報が表示されます。

パッケージ・タイプ:

    CREATE OR REPLACE PACKAGE TESTPACK AS 
       PACK1 Number;
       PACK2 NUMBER;
       PROCEDURE TEST;
   END TESTPACK;

TESTPACKを展開すると、パッケージ変数の値を表示できます。

コール・スタック・ウィンドウの表示

コール・スタック・ウィンドウには、スタック内のプログラムが表示されます。

コール・スタック・ウィンドウのコンテキスト・メニューを使用してコール・スタックのプロパティを有効または無効にできます。

プロパティ

コール・スタック・ウィンドウでは次のプロパティがサポートされています:

プロパティ 説明

Show Parameter Names

現在のコール・スタックのPL/SQLプログラムのパラメータ名。

Show Parameter Values

現在のコール・スタックのPL/SQLプログラムのパラメータの値。現在、Oracle PL/SQLデバッガでは値の最大30文字までが表示されます。

Show Parameter Types

現在のコール・スタックのPL/SQLプログラムのパラメータの型。

Show Line Number

現在のコール・スタックの行番号。

コール・スタック・ウィンドウからのPL/SQLプログラム・ソースの表示

コール・スタック上のPL/SQLプログラムのソース・コードを表示するには、次のいずれかを行います:

  • コール・スタック・ウィンドウでPL/SQLプログラム名をダブルクリックします。

  • コール・スタック・ウィンドウでPL/SQLプログラム名を右クリックし、メニューから「Switch」を選択します。

ソース・ウィンドウが表示され、実行されている位置が黄色の矢印で示されます。

スレッド・ウィンドウの表示

Visual Studioのスレッド・ウィンドウには、PL/SQLデバッグ・プロセスで実行中のスレッドが表示されます。

各スレッドは、Oracle PL/SQLデバッガへのデータベース接続を表します。

ダイレクト・データベース・デバッグ・モードでは、スレッド・ウィンドウに1つのスレッドのみが表示されます。

多層アプリケーション・データベース・モードまたは外部アプリケーション・デバッグ・モードでは、1つ以上のスレッドが表示されます。各スレッドは、アプリケーション・コードから作成されたデータベース接続でデバッグされているPL/SQLプログラムを表します。

スレッド・ウィンドウには次の情報が表示されます:

名前 説明

ID

現在のスレッドID。このIDはOracle PL/SQLデバッガへのデータベース接続を一意に識別します。

Name

現在のスレッド名。

Location

現在のスレッドの実行場所。

Priority

現在のスレッドの優先度。

Suspend

現在のスレッドの一時停止回数。

デバッガ出力の出力ウィンドウの表示

出力ウィンドウにはPL/SQLデバッグ・セッションのデバッガ出力が表示されます。出力ウィンドウにアクセスするには、「View」メニューから「Other Windows」を選択し、「Output」を選択します。出力ウィンドウには、次のようなデバッグ情報が表示されます:

  • PL/SQLデバッグに使用されているTCPポート番号。

  • データベースがデバッガに接続された時刻を示すメッセージ。

  • データベースがデバッガから切断された時刻を示すメッセージ。

  • Oracle PL/SQLデバッガが開始または終了した時刻。

サポートされていないウィンドウ

次のVisual Studioのデバッグ・ウィンドウはPL/SQLプログラムには適用されないため、Oracle PL/SQLデバッグではサポートされていません:

  • 「This」ウィンドウ

  • 「メモリ」ウィンドウ

  • 「レジスタ」ウィンドウ

  • 「モジュール」ウィンドウ

  • 「Running Documents」ウィンドウ

  • 「イミディエイト」ウィンドウ