sqlplusの出力結果をCSVファイルに出力する方法

昨日のエントリの続きです。データベースのデータをExcelなどの表計算ソフトに展開させるときなどに重宝します。sqlだけで実現できるところがミソです。

SET ECHO OFF 
SET FEEDBACK OFF 
SET HEADING OFF 
SET PAGESIZE 0 
SET LINESIZE 1000 
SET TERMOUT OFF 
SET TRIMSPOOL ON 

SPOOL hoge.csv 

SELECT empno||','|| job ||','|| mgr  FROM emp; 

SPOOL OFF

ヘッダ列を追加する場合には、以下のようにSELECT文を追加します。

SPOOL hoge.csv 

SELECT 'empno,job,mgr' FROM dual; 
SELECT empno ||','|| job ||','|| mgr  FROM emp; 

SPOOL OFF