実際にクエリを実行してみましょう。
DBアプリケーションをテストする場合、入出力データを確認するためにクエリの実行は避けてとおれません。PL/SQL Developerを用いると、以下のようなメリットが期待できます。
- クエリの作成・実行、セーブ、ロードが簡単です。
- クエリ結果、データがグリッド表示されます。ソートも簡単です。
- SELECT結果を各種フォーマット(CSV, TXT, HTML, XML)でエクスポート可能です。
- グリッド上でテーブルの編集が可能です。
SQLウィンドウを開く
メニューから、 File → New → SQL Window 、または、→ SQL Window とすると、「SQL Window」 が開きます。
クエリの作成と実行
このWindowのSQLタブにクエリ(SELECT文)を入力して、 Session → Execute 、(F8でも可) または、
ボタンを押すとクエリが実行され、以下のように結果がグリッド表示されます。
このように、PL/SQL Developerを使うと、編集したクエリをその場で実行し、結果をグリッド表示することができます
(カラムヘッダをクリックすることで並べ替えすることも可能)。検索結果の先頭10件が取得されるだけなので、大量データを返す問い合わせの場合でもすぐに反応が返ります。上図の緑の矢印ボタンの一方は次の10件をフェッチするボタンで、もうひとつが全件をフェッチするボタンです。
(注)初めての実行時、以下のようなエラーが出る場合があります。
これは、クエリのパフォーマンス情報へのアクセス権限がないユーザでのみ起こります。
したがって、クエリ自体の実行とは関係ありません。
クエリ実行結果の書き出し
クエリの実行結果は、各種フォーマットで書き出しが可能です。(カンマ区切り、タブ区切り、HTML、XML
テーブルデータの更新
SELECT文の実行結果のデータセットを編集することで、データベースを更新することも可能です。
- 下図の(1)のように、テーブルの ROWID を含めて取得するクエリを実行し、
- 下図の(2)の鍵のマークをクリックすると、鍵が外れた表示になって、データが更新可能になります。
- グリッド上でデータを更新して、(4)のチェックマークでレコードの更新をポストすると、
- トランザクションが進行して、(5)、(6)のボタンが有効になります。
- (5)を押すとトランザクションのコミットが行われ、更新が確定、
- (6)を押すとトランザクションがロールバックされてデータはもとに戻ります。(コミットを忘れるとPL/SQL Developer終了時にコミットされます。環境設定でロールバックするように変えられます)
※ なお、複数のテーブルをJOINしている場合、FROM句の一番目に挙げられたテーブルのみ更新対象にできます。
このようにPL/SQL Developer は、SQL ウィンドウごとに独立のセッションを保持しますので、テーブルのレコードロックのテストなども容易に行えます。
SQL入力支援機能
SQLの入力で面倒なのは、カラム名の入力だと思います。PL/SQL Developerでは、カラム名の入力を簡易にするため、以下のような手段が提供されています。
1.Drag&Drop
PL/SQL Developerを起動すると標準で画面左端にはデータベースオブジェクトのツリー(オブジェクトブラウザ)が表示されています。このオブジェクトツリーから、テーブルを選択し、SQLウィンドウにドラッグ&ドロップすると、ポップアップメニューが現れ、選択した形式に応じて、テーブルの定義を反映した内容がSQLウィンドウに書き込まれます。こんな機能があったとは...。
Select Into を選ぶと...
2.コード補完
テーブル名あるいは、テーブルの別名に続けて「.」(ピリオド)を入力すると、そのテーブルのカラム一覧がドロップダウンリストに表示され、そこから選択して入力することができます。たとえば、以下の例の場合、まず、"SELECT FROM EMP e, Dept d"を入力してから、カラム名入力に戻ると、「e.」と打つだけでEMPテーブルのカラムをドロップダウンリストから選択できるのです。結合クエリ(JOIN)の結合条件の入力にも大変便利です。