Oracle問合せウィンドウについて
Oracle問合せウィンドウでは、SQLおよびPL/SQL文の結果の入力、編集、実行および表示ができます。さらに、パフォーマンス・チューニングに有効なSQL文の実行計画を実行できます。
Oracle問合せウィンドウは2つのペインで構成されています。上部はエディタで下部は出力ウィンドウです。
このセクションの内容は次のとおりです。
Oracle問合せウィンドウのオープン
次のように、コレクションまたはオブジェクト・ノードからOracle問合せウィンドウが開きます:
サーバー・エクスプローラで、コレクションまたはオブジェクト・ノードを展開し、メニューから「Query Window」を選択します。「Data Connection」ノードから開いている場合は、名前付き接続を右クリックしてから「Query Window」を選択する必要があります。このメニューを使用できるのは、データ接続が確立されているか、すでに開いている場合のみです。
「Data Connection」ノードから問合せウィンドウを開くと、問合せウィンドウは内部的に独自の接続を使用します。この接続は、その「Data Connection」ノードに基づいていますが独立したものです。作成された問合せウィンドウの接続プロパティは変更されません。データ接続ウィンドウではユーザーがデータ接続のプロパティを編集できますが、問合せウィンドウの接続は影響を受けません。
Oracle問合せウィンドウを使用したSQL文の実行
この項では、Oracle問合せウィンドウを使用したSQL文の実行方法について説明します。
この項の内容は次のとおりです。
SQL文の入力
SQLまたはPL/SQLを問合せウィンドウに貼り付けたり入力したりできます。
ドラッグ・アン・ドロップを使用して、問合せを自動的に生成することもできます。サーバー・エクスプローラの表またはビュー・ノードを問合せエディタにドラッグします。
IntelliSenseの使用
IntelliSenseは、SQLおよびPL/SQLに対してスマートな提案とコード補完を提供します。SQLまたはPL/SQLを入力すると、次のようにIntelliSenseを使用できます:
-
[Ctrl]+[Space]を押して、キーワードおよびオブジェクト名の状況依存候補を取得します。矢印キーと[Return]キーを使用するか、マウスを使用すると、提案から選択できます。
-
スキーマ名またはオブジェクト名の後にピリオド(".")を入力すると、提案を取得できます。プロシージャ名またはファンクション名の場合、プロシージャ名またはファンクション名の完全なシグネチャがプレースホルダ値とともに出力されます。
-
プロシージャ名またはファンクション名を入力すると、左カッコ("(")によってパラメータ情報が表示されます。入力中の現在のパラメータは太字で表示されます。
-
変数およびオブジェクト名の上にマウスを置くと、変数またはオブジェクト名に関するクイック情報が表示されます。
IntelliSenseメタデータはキャッシュされます。データベース・オブジェクトを最近変更した場合は、「Rebuild Intellisense」ツールバー・アイコンまたはメニュー項目をクリックして、最新の提案を取得します。
提案の小文字での取得など、提案の大/小文字を変更するには、「IntelliSense設定の「Options」ページ」を参照してください。
SQL文の実行
問合せウィンドウでSQLまたはPL/SQL文を実行するには:
-
複数のSQL文があり、その1つを実行する場合、実行するSQL文を強調表示します。(強調表示しないと、Oracle問合せウィンドウにより最後のSQL文が実行されます)。
-
Oracle問合せウィンドウまたはツールバーで「Execute」をクリックします。
画面下部のVisual Studioステータス・バーに、SQLの実行ステータスとして「Ready」、「Executing」および「Cancelling」のいずれかが表示されます。また、ステータス・バーには、タスクの推定進捗状況を示す進捗バーが表示され、問合せウィンドウの現在のカーソルの行と列の位置が示されます。
また、問合せ出力が表示され(まだ表示されていない場合)、問合せの結果が示されます。問合せ出力には、次が表示されます:
-
実行されたSQL文。
-
グリッドまたはテキスト形式での問合せの結果。デフォルトはグリッド形式です。
-
エラー
-
PL/SQLの
DBMS_OUTPUT.PUT_LINEまたは同様のメソッドからのすべての出力。 -
SQL文の影響を受けた行の数。
-
UDT列データの場合、実際のデータ表現はXML形式であり、ネストしたレベルのみが含まれています。
フェッチされる行数を制限し、行番号を一般オプション・ページに表示できます。
複数のSQL文の実行
Oracle問合せウィンドウでは、複数のSQL文およびPL/SQL無名ブロックを処理できます。
コマンドのブロックを選択(強調表示)する必要があります。問合せウィンドウに複数のコマンドがあっても、コマンドが選択されていないと、最後のコマンドしか実行されません。
自動コミットの有効化と無効化
デフォルトでは、問合せウィンドウの各文は自動的にコミットされます。
Oracle問合せツールバーで「AutoCommit Mode」をクリックすると、自動コミット・モードを無効にできます。自動コミット・モードは、有効であるか無効であるかを示すチェックまたはxが付く切替えボタンです。
自動コミットが無効である場合、COMMIT文またはROLLBACK文を明示的に実行できます。
コミットまたはロールバックを行う場合、次のOracle問合せツールバーまたは問合せエディタのいずれかを使用します。
Oracle問合せツールバー: 「Commit」をクリックして、最後のコミット以降に実行されたすべてのDML文をコミットします。「Rollback」をクリックして、最後のコミットが発行されてからDML文を使用して行われたすべての変更をロールバックします。
Oracle問合せエディタ: 文としてCOMMITまたはROLLBACKと入力し、「Execute」を選択して文を実行します。
SQL文またはPL/SQLブロックでのバインド・パラメータの使用
1つ以上のバインド変数プレースホルダをSQL文またはPL/SQLブロックに含めることができます。パラメータ・プレースホルダは、コロンとそれに続く任意の識別子(:IDや:1など)で識別されます。パラメータ化されたSQLまたはPL/SQLが実行されると、「Query Parameters」ダイアログが開き、対応する値を入力できます。詳細は、「「Query Parameters」ダイアログ」を参照してください。
PL/SQLブロックとサブプログラムからの出力の表示
Oracle問合せウィンドウでは、DBMS_OUTPUTパッケージのPUT_LINE、NEW_LINE、およびPUTメソッドを使用して、PL/SQLブロックおよびサブプログラムからの出力を表示できます。デフォルトでは、全行は表示されないため、全行を画面に表示するには、DBMS_OUTPUT.ENABLEメソッドを使用する必要があります。このステップの実行は、問合せウィンドウを開いた後で1回のみ実行する必要があります。次に例を示します:
CREATE OR REPLACE PROCEDURE list_tables AS
BEGIN
dbms_output.enable;
dbms_output.put_line('These are the tables you own:');
...
DBMS_OUTPUTパッケージ・コマンドの詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』および『Oracle Database SQL言語リファレンス』を参照してください。