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



Oracleには、CSVファイルを読み込むSQL*Loaderというユーティリティは存在するが、 その逆のCSVファイルを書き出すユーティリティは存在しない。
SQL*Plusを使用してCSVファイルを作成する例を以下に示す。


OracleのScottユーザのemp表を例にする。
emp表は以下のように定義されている。

SQL> desc emp
 名前                            NULL?    タイプ
 ------------------------------- -------- ----
 EMPNO                           NOT NULL NUMBER(4)
 ENAME                                    VARCHAR2(10
 JOB                                      VARCHAR2(9)
 MGR                                      NUMBER(4)
 HIREDATE                                 DATE
 SAL                                      NUMBER(7,2)
 COMM                                     NUMBER(7,2)
 DEPTNO                                   NUMBER(2)

CSVファイルを作成する為に以下を実行する。

SQL> set echo off
SQL> set heading off
SQL> set termout off
SQL> set pause off
SQL> set pagesize 0
SQL> set linesize 80
SQL> set feedback off
SQL> spool emp.csv
SQL> select empno || ',' || ename || ',' ||
  2  job || ',' || sal from emp;
7369,SMITH,CLERK,800
7499,ALLEN,SALESMAN,1600
7521,WARD,SALESMAN,1250
7566,JONES,MANAGER,2975
7654,MARTIN,SALESMAN,1250
7698,BLAKE,MANAGER,2850
7782,CLARK,MANAGER,2450
7788,SCOTT,ANALYST,3000
7839,KING,PRESIDENT,5000
7844,TURNER,SALESMAN,1500
7876,ADAMS,CLERK,1100
7900,JAMES,CLERK,950
7902,FORD,ANALYST,3000
7934,MILLER,CLERK,1300
SQL> spool off

以上の操作によりemp.csvという名前でCSVファイルが作成される。
WindowsのSQL*Plusの場合は、SQL*Plusの実行ファイルが格納されている ディレクトリにCSVファイルが作成される。



オプションやSQLを変更して、作成するCSVファイルを変更する方法を以下に説明する。