kagamihogeの日記

kagamihogeの日記です。

SQL Developer 4.1の新機能Multi-Cursor Editing, SQL Logging, Import Data Wizardを試す

環境

General Enhancments

SQL Developer 4.1 New FeaturesによるとBy popular demand(よくある要求に対する機能強化)の名目で、Multi-Cursor EditingとSQL Loggingという機能が追加されている。どちらもすげぇ目を引くってわけでなく、知っておくと得をするかも、ぐらいの代物である。

Multi-Cursor Editing

複数個所にカーソルのフォーカスを置いてそこへ同じ文字を入力できる、というもの。これは文章ではわかりにくいので解説ビデオを見たほうが良い。

いま、下みたいなHR.EMPLOYEESを問い合わせるクエリがあったとして、各カラムの頭にもスキーマ+テーブル名のhr.employees.をつけくわえたい、とする。

f:id:kagamihoge:20150812161002j:plain

CTRL + SHIFT + クリック、を各カラムの先頭にしていくと、以下のように複数個所にカーソルのフォーカスが当たる状態になる。

f:id:kagamihoge:20150812161101j:plain

上記の状態でhr.employees.と入力すると以下のようになる。

f:id:kagamihoge:20150812161328j:plain

なお、タテだけじゃなくヨコにも複数カーソルを置ける。

f:id:kagamihoge:20150812161530j:plain

SQL Logging

そのログインセッションでデータベースに送信したすべてのステートメントを記録する、というもの。ごくカンタンに言えば、SQL Developerが裏でどんなクエリを出しているのかが見れる。

表示 -> ログ -> ログのビューの下側に小さく表示されている「文*1」のタブを選択、で見ることが出来る。以下は試しに4.1の新機能Instance Viewerを実行した状態でのログ表示。

f:id:kagamihoge:20150812162253j:plain

Instance Viewerを開いた状態だとものすごい勢いでログが流れていく。これを見ていてわかるのはInstance ViewerはV$やGV$にアクセスしまくっているという事実で、その情報を上手いことグラフィカルに表示してくれている、と推測が立てられる。なので、使い方の一つとしてはSQL Developerの機能が裏でどんなクエリ出してるのかを知りたいときに有用なんじゃなかろうか。

Import Data Wizardを使ってみる

従来にもインポート機能はあったが、それが拡張されて使いやすくなっている模様。とりあえず使ってみる。

インポートと同時にテーブルも新規作成したい場合、接続ツリー -> 表 -> 右クリック -> データのインポート を選ぶ。既存テーブルに追加したい場合はそのテーブルを右クリックする。

f:id:kagamihoge:20150812115638j:plain

データ・ファイルのインポートにCSVとかエクセルのファイルパスを入力する。なお、自分の環境だと、「参照」からExcel2003+(xlsx)がなぜか選べないが、「データ・ファイルのインポート」にパスを直接貼り付けてエンター押せば読み込んでくれた。

f:id:kagamihoge:20150812115647j:plain

こんな感じにファイルを読み込んでプレビューが表示される。エンコーディングとかヘッダーとか囲み文字とかを自動で読み込んでくれる。

次にインポート方法とインポート先を選ぶ。

f:id:kagamihoge:20150812115654j:plain

インポート方法それぞれの詳細についてはこちらを参照。「表名」に、インポートするデータを挿入したい新規テーブル名を入力する。なお、既存テーブルにインポートする場合は、当然ここは編集不能。

次にインポートしたい列を選ぶ。

f:id:kagamihoge:20150812115702j:plain

次に各列についてデータ型を決めていく。

f:id:kagamihoge:20150812115709j:plain

型はデータからおおむね正しいものを自動的に選択してくれる。上記のキャプチャは、0.3とか0.42とかのデータから、少数点(NUMBER(4,2))と自動的に判別している。

型に互換性が無いとこんな感じに怒られる。

f:id:kagamihoge:20150812115715j:plain

DATE, TIMESTAMPに関してはインポートデータの書式を入力する。

f:id:kagamihoge:20150812115720j:plain

最後にサマリをチェックして、問題無いなら終了を押す。

f:id:kagamihoge:20150812115727j:plain

表 -> 右クリック -> リフレッシュ、インポートしたテーブルを開いてデータタブを見ると、データが入っているのがわかる。

f:id:kagamihoge:20150812115740j:plain

以前のインポート機能に比べるとだいぶ便利にはなった。CSVからテーブル定義を起こしてくるのは場合によっては便利かもしれない。

ただ、エクセルからコピペできるA5:SQL Mk-2とか、他にもデータを入れるための便利な手段は色々あるので、一番しっくりくるヤツを使うのがいいと思う。

参考リンク

*1:Statementのことだろうけど訳さないほうが良かったのでは…