2015년 10월 15일 목요일

Oracle EXTERNAL TABLE

ORACLE에서 TEXT의 데이터를 테이블에 넣는 방법은
SQL LOADER를 이용하여 FILE의 데이터를 Table에 넣을 수 있고  다른 방법으로는 우리가 흔히 쓰는 TOAD, Orange 기타 TOOL을 이용하여 Text Data를 Table로 넣을 수 있는데 다른 또 하나의 방법은 EXTERNAL Table이다.

우선 DIRECTORY를 만드는데 DBA 권한에서 작업해야 된다.(WINDOW를 기준으로 작업했습니다.) C 밑에 tmp라는 Folder를 Directory로 선언

CREATE DIRECTORY EXT_TAB_DIR AS 'C:\tmp';

GRANT READ, WRITE ON DIRECTORY EXT_TAB_DIR TO SCOTT;

CREATE TABLE TEST
(
  EMPLOYEE_NUMBER  VARCHAR2(5 BYTE),
  EMPLOYEE_NAME    VARCHAR2(10 BYTE)
)
ORGANIZATION EXTERNAL
  (  TYPE ORACLE_LOADER
    DEFAULT DIRECTORY EXT_TAB_DIR
    ACCESS PARAMETERS
      ( RECORDS DELIMITED BY NEWLINE
      NOBADFILE
      NODISCARDFILE
      NOLOGFILE
      SKIP 0
      FIELDS TERMINATED BY ','
      OPTIONALLY ENCLOSED BY '"' AND '"'
      MISSING FIELD VALUES ARE NULL
      REJECT ROWS WITH ALL NULL FIELDS
      (
        EMPLOYEE_NUMBER Char,
        EMPLOYEE_NAME Char ENCLOSED BY '"' AND '"'
      )  )
    LOCATION (EXT_TAB_DIR:'EMP.dat')
  )
REJECT LIMIT UNLIMITED
NOPARALLEL
NOMONITORING;

External Table 만든 후에
C:\tmp\EMP.dat File을 만든다.

내용은
11001,한덕수
11002,김경환
11003,차일권
을 EMP.dat File에 넣어 주고

SELECT *
  FROM TEST;

바로 DATA가 나온다.
이번에는
11004,백일섭
File에 추가해서 다시 table select 하면 바로 추가 된다.
File의 데이터를 바로 끌어 오는것이다.
한 번 사용해 보시길...
감사합니다. 

댓글 없음:

댓글 쓰기