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

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

■ 前準備

set linesize 32767
set pagesize 10000
set trimspool on
set colsep ','
ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';

■ 実行

spool filename.csv
select * from table1;
spool off

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

■ カンマを含むデータに対応する

COLSEP にデータの中に絶対存在しないパターンを指定し、

set colsep '|||'

その後、エディターでタブ文字(\t)に置換し、Excel へ貼り付け、CSV 保存する。

■ 改行を含むデータに対応する(1)

REPLACE 関数を使用し、改行を空値に置き換える。

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

■ 改行を含むデータに対応する(2)

ダブルコーテーションで囲う。

set colsep '","'

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

ref:ORACLE/CLOB

選択肢 投票
参考になった 29  
参考にならなかった 21  


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-03-24 (木) 14:24:58 (764d)