OBをトコトン極める

Oracle テーブルデータをCSVファイルに出力しよう

  • 2018.02.13
  • 株式会社システムインテグレータ
Oracle テーブルデータをCSVファイルに出力しよう

SI Object Browser for Oracle Ver.14 には、テーブルデータ (ビューやSQL実行の結果を含む) の出力機能として、新たに「CSV出力」機能を実装しました。

CSV (Comma-Separated Values) はテキスト形式のファイルで、カンマ (,) と改行によって表形式のデータを表現します。Excelなど表計算ソフトのほか、一般的なテキストエディタで開くことができるため、簡易的なデータ交換に適しています。

以前のバージョンでテーブルデータをCSV形式で出力するには、一度データをExcelファイルに出力した上でそのファイルを開き、CSV形式で保存し直すという作業が必要でした。今回新たに実装された「CSV出力」機能により、直接CSVファイルを出力することが可能となっています。また多くの場合、CSV出力はExcelファイル出力よりも短時間で処理が完了します。

使用方法

テーブル画面 (ビュー画面) の「データ」タブ、あるいはSQL実行画面でツールボタンの下記アイコンをクリックします。すると図 2のようなダイアログが表示されます。

このダイアログ (CSV出力ダイアログ) では、ファイルの出力先や出力形式の設定を行えます。各設定項目については後述しますので、ここではひとまず「開始」ボタンを押してみましょう。

t001.png

1 CSV出力画面の呼び出し

t2.png

2 CSV出力ダイアログ

出力されたファイルをテキストエディタで開いてみた結果が図3です。

t3.png

3 出力されたCSVファイルをテキストエディタで開く

CSV出力画面の設定項目

図 2のCSV出力ダイアログで設定できる項目について、本節で説明します。 

ファイル形式

出力されるファイルのエンコーディングを指定します。

・文字コード
Shift-JISのほか、UTF-8 (BOM無し) 等を選択できます。

・改行コード
 Windowsで標準的に用いられるCR+LFと、LinuxやmacOS (Mac OS X以降) で標準的に用いられるLFを選択できます。

列タイトル出力

列タイトルの出力形式を選択します。

・項目名を使用
テーブルの列名やSELECTで指定した項目名を1行目に出力します。

・コメントを使用
テーブルに指定されたコメントを1行目に出力します。(コメントはCOMMENT ON句やテーブル情報画面「定義情報」タブで設定できます。)
SQL実行結果の出力では「項目名を使用」を選択した場合と同じ動作になります。

・出力しない
列名を出力せず1行目からデータを出力します。

二重引用符 (") で値を囲う条件 

CSVでは、文字列が1つの値であることを明示するため、値を二重引用符 (ダブルクォーテーション) で囲う (以下、クォートする) ことがあります。

RFC 4180によれば、CSVのフィールドは、その値によって必ずクォートしなければならない場合と、クォートしなくても良い場合があります。たとえば「林檎, 蜜柑」という文字列を1つの値として扱うのであれば "林檎, 蜜柑" のようにクォートする必要があります。

上記を踏まえ、CSV出力機能では下記の設定項目を用意しています。

・すべて囲う
すべての値をクォートします

・文字列型のみ囲う
文字列型 (CHAR, VARCHAR2, NCHAR, NVARCHAR2) の列について各値をクォートします。

・必要なときのみ囲う
対象が文字列型でかつ「必ずクォートしなければいけない場合」に該当する値のみをクォートします。

最新のデータを読み直してから出力する

この項目がチェックされていない場合、本機能はデータグリッドに読み出された値をファイルに出力します。チェックされている場合、データベースから値を再取得し、最新の値をファイルに出力します。(未チェックの場合より処理に時間がかかります。)

標準の出力設定を変更しよう

たとえば常にUTF-8CSVファイルを書き出したい場合、CSV出力画面で毎回設定を変更するのは骨が折れます。デフォルトの出力形式を設定してしまいましょう。 

「ツール」メニューから「オプション」を開きます。

CSV出力に関する設定は「外部出力」「外部出力2」タブにあります。「CSV出力」ダイアログに対し、それぞれ下記のように対応します。

t03.png

4 「外部出力」タブ

「外部出力」タブ (図 4)

  • 文字コード … 「ファイル入出力」→「テキストファイルの形式」

t04.png

5 「外部出力2」タブ

「外部出力2」タブ (図 5)

  • 保存ファイル名 … 「CSV出力」→「デフォルトの出力先」
  • ファイル形式→改行コード …「CSV出力」→「改行コード」
  • 列タイトル出力 … 「CSV出力」→「列タイトル出力」
  • 二重引用符 (") で値を囲う条件 … 「CSV出力」→「二重引用符 (") で値を囲う条件」
  • CSV出力」→「最新のデータを読み直してから出力する」

まとめ

みなさまお待ちかねのCSV出力がついに使えるようになりました!

SI Object Browserシリーズは今後もかゆいところに手が届くツールとして皆様のお役に立てるよう、改善を続けてまいります。今後とも何卒、よろしくお願いいたします。

いまさら聞けない Oracleの基本

いまさら聞けない Oracleの基本