> 오라클에서 순수 데이터만 뽑아내려면 어떻게 하나요?
> 명령어와 옵션까지 써주시면 정말 감사하겠습니다.
아주 간단한 경우만 예로 들겠습니다.
보통 데이타 파일은 구분자로 ,나 TAB 문자를 써서 구분하는데
이때 구분자(,나 TAB문자) 가 데이타에 있으면 당연히 안되겠지요 ^^;
반드시 데이타에 존재하지 않는 문자를 구분자로 사용해야 합니다.
그러면 오라클에 흔히 있는 scott 유저의 emp 테이블의 데이타를
가장 간단하게 sqlplus를 이용해서 파일로 만들어 보겠습니다.
SQL> desc emp
Name Null? Type
----------------------------------------- -------- -----------------
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)
아래와 같은 SQL 파일 emp.sql 파일을 만듭니다.
(참고로 이 방법은 한 라인 (하나의 record )이 32767 문자 이내여야 합니다. 8i에서)
--------------------------------------------------------------------
set echo off lin 2000 pages 0 verify off feedback off trims on
spool emp.txt
select EMPNO||','||ENAME||','||JOB||','||MGR||','||
to_char(HIREDATE,'yyyy-mm-dd:hh24:mi:ss')||','||
SAL||','|| COMM||','|| DEPTNO
from emp
/
spool off
--------------------------------------------------------------------
SQL> @emp.sql
이 문장을 위와 같이 수행하면 현재 디렉토리에 emp.txt 파일이 남아 있습니다.
만약 더 다양한 형태의 데이타 파일이 필요하고, 한 레코드의 길이가
더 길다면 당연히 프로그램을 짜야 합니다.
1. PL/SQL : utl_file 패키지를 사용하면 파일 입출력이 가능합니다.
2. Pro*C : C를 사용하여 원하는 조작을 행할 수 있습니다.
3. JDBC : Java를 사용하여 원하는 조작을 행할 수도 있지요.
|