토드(TOAD) 등의 데이터베이스 툴을 사용하지 않고 오라클의 기본 프로그램인 SQLPLUS를 사용하면 실행한 쿼리의 조회 결과를 보기기 무척 힘듭니다.
오라클 sqlplus에서 spool 기능을 사용하여 결과를 텍스트로 저장하고 컬럼 조회TOAD) 등의 데이터베이스 툴을 사용하지 않고 오라클의 기본 프로그램인 SQLPLUS를 사용하면 실행한 쿼리의 조회 결과를 보기기 무척 힘듭니다.
오라클 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
'IT만들기 > Database' 카테고리의 다른 글
오라클 스케줄러(SCHEDULER), 잡(JOB)으로 일정 시간마다 또는 매일 자동 실행 등록하는 방법입니다. (0) | 2021.07.08 |
---|---|
오라클(oracle) 락(lock - 세션, 로우) 확인 및 락 걸린 세션 제거(kill) (1) | 2021.01.08 |
오라클 공인교재용 샘플 DB 생성 스크립트 및 DB 삭제 (0) | 2020.03.07 |
오라클 함수, 프로시저 또는 트리거에서 내용 찾기를 해봅시다. (0) | 2018.10.12 |
데이터베이스 정규화 (0) | 2017.06.28 |
오라클 암복호화 패키지 설치 방법 (0) | 2011.12.05 |
오라클 공인교재용 SQL 샘플 DB 삭제 스크립트 (0) | 2009.01.07 |
오라클 에러 메세지 (0) | 2009.01.07 |
댓글