OracleからテキストTAB、CSVデータでエクスポートする-1

Oracleからテキストタブ形式やCSV形式でデータをエクスポートして書き出す。

 

■Oracleからテキストタブファイルとしてエクスポートする

テープル: emp

書き出す列: id, last_name, first_name, address

書き出す行: 全レコード 

書き出し先のファイル名: ファイル名.txt 

 

 

■テキストタブ(TSV)でエクスポートするSQL文をテキストで保存する

emp_export_tab.sql

set echo off
set heading off
set termout off
set pause off
set pagesize 0
set linesize 1000
set trimspool on
set feedback off
spool ファイル名.txt

SELECT
id || ' ' ||
last_name || ' ' ||
first_name || ' ' ||
address
FROM emp;

spool off
;

上記の  ' ' は、「シングルクォート」「タブ」「シングルクォート」として入力している。

(例) ||の役割は「接続すること」

last_name || first_name : 北野武

last_name || 'ビート' || first_name : 北野ビート武

last_name || 'タブ' || first_name : 北野    武 

 

(注意)

SELECTからFROM emp;までは、余分な改行を入れないこと。

 

■SQL*Plusでログインして、実行する。 

SQL> @emp_export_tab.sql 

出力されたファイルを確認する。 

SQL> ! 
$ ls
emp_export_tab.sql ファイル名.txt

作業は、UNIX上のサーバで行う。SQL*Plusでログインするときの作業ディレクトリに、「ファイル名.txt」として出力されていることを確認する。

 

■OracleからCSVファイルとしてエクスポートするSQLをテキストで保存する

emp_export_csv.sql

set echo off
set heading off
set termout off
set pause off
set pagesize 0
set linesize 1000
set trimspool on
set feedback off
spool ファイル名.txt

SELECT
'"' || id || '","' ||
last_name || '","' ||
first_name || '","' ||
address || '"'
FROM emp ;
spool off
;

(例) ||の役割は「接続すること」

last_name || first_name : 北野武

'あの人は' last_name || 'さん' : あの人は北野さん

'ダブルクォート' last_name || 'ダブルクォートとカンマ' : "北野",

 

(注意)

SELECTからFROM emp;までは、余分な改行を入れないこと。

 

 

■SQL*Plusでログインして、実行する。 

SQL> @emp_export_csv.sql 

出力されたファイルを確認する。 

SQL> ! 
$ ls
emp_export_csv.sql ファイル名.txt

作業は、UNIX上のサーバで行う。SQL*Plusでログインするときの作業ディレクトリに、「ファイル名.txt」として出力されていることを確認する。