テーブルを手っ取り早くCSV形式で出力する(SQL*Plus)
テキストデータを取り込むには、SQL*Loaderというユーティリティが用意されていますが、
逆のSQL*Saverなどというものは用意されていません。
CSV形式のテキストファイルにデータを出力したい場合は、PL/SQLで外部ファイルに書き出す方法や
MicroSoft ACCESS などのソフトからリンクし取り出す方法が考えられます。
MicroSoft ACCESSからリンクする方法は、少量のデータの場合はお手軽で良いのですが、
数万件オーダのデータを扱う場合、テーブルを表示するだけで時間が掛かったりと
一長一短であったりします。
今回は、
SQL*PlusのSPOOL機能を使ってCSV形式のテキストファイルに出力する方法
でやって見ましょう。
SQL*Plusのコンソールより以下のコマンドを実行します。
SQL> set echo off
|
エコーをOFFします。
デフォルトではOFFですが念のため。 |
SQL> set linesize 1000
|
1行のサイズを設定します。
データより長ければ問題ありません。
私はいつも適当に1000を設定します。 |
SQL> set pagesize 0
|
ページ区切りをなくします。 |
SQL> set trimspool on
|
行末のスペースを無くします。 |
SQL> set colsep ','
|
項目区切り文字を設定
この例では「,」 |
SQL> spool c:\work.csv
|
出力先のファイルを指定
この例では「c:\work.csv」 |
SQL> select * from XXX
|
出力対象のデータをselectし、
取得結果をスプール |
:
|
|
:
|
(出力中) |
:
|
|
SQL> spool off
|
スプールを終了しファイルを閉じる |
|