#navi(ORACLE/SQL*Plus)

SQL*Plus を使用して、CSV ファイルを作成する。

(telnet と ftp しか使えない環境で重宝します。)

**■ 前準備 [#ha877d6e]
 set linesize 32767
 set pagesize 10000
 set trimspool on
 set colsep ','
 ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';

**■ 実行 [#f39d066d]
 spool filename.csv
 select * from table1;
 spool off

改行やカンマを含むデータの場合にはこの方法は使えない。

**■ カンマを含むデータに対応する [#o2432db0]
COLSEP にデータの中に絶対存在しないパターンを指定し、
 set colsep '|||'
その後、エディターでタブ文字(\t)に置換し、Excel へ貼り付け、CSV 保存する。

**■ 改行を含むデータに対応する(1) [#f452d78e]
REPLACE 関数を使用し、改行を空値に置き換える。

 select replace(replace(field1, chr(10), ''),chr(13),'') from table1;

**■ 改行を含むデータに対応する(2) [#k40c0be7]
ダブルコーテーションで囲う。

 set colsep '","'
 
 spool filename.csv
 select '"'||field1, field2, field3||'"' from table1;
 spool off

ref:ORACLE/CLOB

#vote(参考になった[29],参考にならなかった[20])
#vote(参考になった[29],参考にならなかった[21])

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS