Atomic Habits

오라클 spool 기능 - 쿼리문 파일로 저장하기 본문

IT/SQL

오라클 spool 기능 - 쿼리문 파일로 저장하기

체계성 2021. 11. 17. 21:46

오라클 sqlplus에서 spool 기능을 사용하여 결과를 텍스트로 저장하고 컬럼 조회 결과마다 컴마(,)로 출력하는 방법을 사용한다면 엑셀에서도 열어서 보기 편하게 볼수 있답니다.

 

데이터베이스 조회 결과를 "C:\spooltest.txt"로 저장하는 예제를 설명하도록 하겠습니다.
UNIX AIX 등에서는 경로를 지정하지 않으면 sqlplus를 실행한 경로에 파일이 만들어 집니다

다음과 같이 오라클 예제 스키마인 scott로 접속해보도록 할께요.
SQLPLUS scott/tiger

sqlplus에서 DB에 접속하였으면 다음과 같이 입력해 주세요.

set echo off
set trimspool on
set pagesize 0
set feedback off
spool c:\spooltest.txt

스풀(spool), 결과를 텍스트 파일로 저장하기 준비가 되었습니다.
오라클의 샘플 테이블을 다음과 같이 조회하면 spool 명령으로 지정한 파일에 내용이 저장된답니다.

SELECT empno || ',' || sal || ',' || ename || ',' || to_char(hiredate, 'YYYY-MM-DD') FROM emp;
SELECT deptno, dname FROM dept;

이렇게 하면 내용이 sqlplus 콘솔 화면에 잔뜩 출력될거예요.

이렇게 하고 캡처를 중지할려면 다음과 같이 spool 기능을 꺼주면 됩니다.
spool 종료 명령입니다.

spool off

 

이 외에 spool 관련 옵션에 대한 명령어입니다.

헤더(header)가 출력(display)되지 않고 데이터만 출력하기 위한 명령입니다.
SQL>SET HEADING OFF

pagesize의 default는 14이며 그대로 하면 14줄마다 1줄씩 공백이 생기므로 그런 현상을 방지하기 위해 크게 지정합니다.
SQL>SET PAGESIZE 1000

linesize를 record 길이만큼 지정하여 아래로 구분되지 않도록 합니다.
SQL>SET LINESIZE 300

명령어가 출력되지 않도록 지정하는 옵션, 명령어입니다.
SQL>SET ECHO OFF

조회 결과가 화면에 나오지 않고 텍스트 파일에만 나오도록 하는 명령어입니다.
SQL>SET TERM OFF



출처: https://mystarlight.tistory.com/9 [커피향처럼]

Comments