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

 2018.02.13  株式会社システムインテグレータ

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

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

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

使用方法

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

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

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

1 CSV出力画面の呼び出し

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

2 CSV出力ダイアログ

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

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

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

CSV出力画面の設定項目

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

ファイル形式

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

いまさら聞けない Oracleの基本 [中級編]
新規CTA

・文字コード
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出力」ダイアログに対し、それぞれ下記のように対応します。

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

4 「外部出力」タブ

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

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

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

5 「外部出力2」タブ

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

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

[RELATED_POSTS]

まとめ

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

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

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

RELATED POST関連記事


RECENT POST「【OBトコ】OBの基本的な使い方」の最新記事


【OBトコ】OBの基本的な使い方

【ChatGPTでSQL整形!】SI Object Browser for Oracle 23.1の新機能

【OBトコ】OBの基本的な使い方

【待望のセミコロン対応!】SI Object Browser for Oracle 23の新機能

【OBトコ】OBの基本的な使い方

SI Object Browserの基本がマスターできるチュートリアル

【OBトコ】OBの基本的な使い方

痒い所に手が届く!SI Object Browser 21.2.5の新機能

Oracle テーブルデータをCSVファイルに出力しよう
新規CTA
ブログサイドバー_トライアル申込
ブログ購読のお申込み

RANKING人気資料ランキング

RANKING人気記事ランキング

RECENT POST 最新記事