oracle db 데이터를 엑셀파일로 만들어야하는 상황이 생겼는데 tool을 이용하지도 못하는 상황이라 이리저리 찾아보는 도중 sqlplus에서 실행한 쿼리 결과를 파일로 만들어주는 spool 명령어를 알게 되었다.

 

1. 사용방법

set 옵션 값
spool 파일명(경로까지)
내보낼 sql문(select문)
spool off

 

예시

--컬럼 구분자 
set colsep ,

-- pagesize의 default는 14이며 그대로 하면 14줄마다 1줄씩 공백이 생기므로 
-- 그런 현상을 방지하기 위해 크게 지정
set pagesize 50000	

-- linesize도 데이터 길이만큼 지정하여 
-- 아래로 구분되지 않도록 크게 지정
set linesize 10000

-- linesize 이하로 행이 짧을 때 나머지부분을 자른다. 줄 끝 공백제거
set trimspool on

-- 컬럼명 헤더 출력 여부
set heading on

-- 결과 파일 경로
spool /home/oracle/test.csv

SELECT *
FROM TB_TABLE;

spool off

 

 

이외에도 여러 옵션이 있다. 아래에서 참조

https://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12040.htm#i2683501

 

 

편하게 .sql 스크립트 파일을 작성하고

sqlplus에 로그인해서 해당 스크립트 파일을 아래와 같이 불러주면 된다.

@test.sql

 

'데이터베이스 > Oracle DB' 카테고리의 다른 글

[Oracle DB] csv import (SQL Loader)  (0) 2021.10.01
[Oracle DB] SQL Plus csv export (spool)  (0) 2021.09.30

+ Recent posts