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 |
---|