OracleテーブルデータをCSVファイルへ出力

SQL*PLUSのSPOOL機能を使ってCSVファイル形式にDUMPします。

SQL> set echo off
	エコーをOFFします。
	デフォルトではOFFですが念のため。
SQL> set linesize 1000
	1行のサイズを設定します。
	データより長ければ問題ありません。
SQL> set pagesize 0
	ページ区切りをなくします。
SQL> set trimspool on
	行末のスペースを無くします。
SQL> set colsep ','
	項目区切り文字を設定
	この例では「,」
SQL> spool c:\test.csv
	出力先のファイルを指定
	この例では「c:\test.csvSQL> select * from XXX;
	出力対象のデータをselectし、取得結果をスプール
    :
	 
    :
	(出力中)
    :
	 
SQL> spool off
	スプールを終了しファイルを閉じる

纏めてバッチファイルを作成して使いましょう。

-- Do.sql --
set echo off
set linesize 1000
set pagesize 0
set trimspool on
set colsep ','
spool c:\test.csv
select * from &TebleName;
spool off
exit
sqlplus user/pass@sid @Do.sql
で実行し、
「teblenameに値を入力してください:」
が表示されたらテーブル名を入力します。