이 기능은 신기하고 유용한 기능이다.
External Table 이란 외부 파일시스템의 파일(TEXT)을 오라클의 테이블과 연결하여 그 데이터에 질의를 수행할 수 있는 개념이다.
쉽게 말해서 엑셀파일을 특정 테이블과 연결하여 사용자는 일반 테이블에 조회하듯 사용하여 엑셀파일을 사용중인지 인지하지도 못한다. 물론 read-only 이다. 그 외부 파일은 여러가지 포멧을 지원하며 *.dat *.txt도 가능하다.
오라클에서는 외부의 데이터에 엑세스 하기 위해 두가지 방법을 지원한다. 첫번째는 SQL*Loader utility 이고 두번째는 ORACLE_DATAPUMP 이다.
절차
1. DIRECTORY 생성
일단 파일 시스템의 경로를 나타내는 DIRECTORY을 생성한다. 임의로 'c:\external_data' 으로 설정하도록 한다.
2. 사용자에게 디렉토리의 읽기 권한 부여
External Table 이란 외부 파일시스템의 파일(TEXT)을 오라클의 테이블과 연결하여 그 데이터에 질의를 수행할 수 있는 개념이다.
쉽게 말해서 엑셀파일을 특정 테이블과 연결하여 사용자는 일반 테이블에 조회하듯 사용하여 엑셀파일을 사용중인지 인지하지도 못한다. 물론 read-only 이다. 그 외부 파일은 여러가지 포멧을 지원하며 *.dat *.txt도 가능하다.
오라클에서는 외부의 데이터에 엑세스 하기 위해 두가지 방법을 지원한다. 첫번째는 SQL*Loader utility 이고 두번째는 ORACLE_DATAPUMP 이다.
절차
1. DIRECTORY 생성
일단 파일 시스템의 경로를 나타내는 DIRECTORY을 생성한다. 임의로 'c:\external_data' 으로 설정하도록 한다.
CREATE OR REPLACE DIRECTORY ext_dir AS 'c:\external_data';- ON REPLACE 는 다시 생성할 때 사용하는 옵션이다.
2. 사용자에게 디렉토리의 읽기 권한 부여
GRANT READ ON DIRECTORY ext_dir TO hr;
3. 외부 테이블 생성
- <table_name> : 테이블 명
- <col_name> : 컬럼명
- <datatype> : 데이터 타입
여기까지는 일반 테이블 생성과 동일하다.
- <access_driver_type> : 연결 드라이버 타입 (ORACLE_LOADER )
- <directory_name> : 디렉토리명 (아까 생성한 ext_dir 을 넣으면 된다.)
CREATE TABLE oldemp (
fname char(25), lname CHAR(25))
ORGANIZATION EXTERNAL
(TYPE ORACLE_LOADER
DEFAULT DIRECTORY emp_dir
ACCESS PARAMETERS
(RECORDS DELIMITED BY NEWLINE
NOBADFILE
NOLOGFILE
FIELDS TERMINATED BY ','
(fname POSITION ( 1:20) CHAR,
lname POSITION (22:41) CHAR))
LOCATION ('emp.dat'))
PARALLEL 5
REJECT LIMIT 200;
- <table_name> : 테이블 명
- <col_name> : 컬럼명
- <datatype> : 데이터 타입
여기까지는 일반 테이블 생성과 동일하다.
- <access_driver_type> : 연결 드라이버 타입 (ORACLE_LOADER )
- <directory_name> : 디렉토리명 (아까 생성한 ext_dir 을 넣으면 된다.)
- RECORDS DELIMITED BY NEWLINE : 행의 구분은 줄 단위로
-
http://blog.daum.net/kwonmc/5918853
http://blog.daum.net/kwonmc/5918854
@
-
http://blog.daum.net/kwonmc/5918853
http://blog.daum.net/kwonmc/5918854
@
'Oracle > Administrator' 카테고리의 다른 글
관리 쿼리 모음 (0) | 2012.03.11 |
---|---|
UNDO 와 Snapshot too old 에러 (0) | 2012.02.26 |
Index (0) | 2011.09.29 |
GRANT, REVOKE : DCL(Data Control Language) (0) | 2011.09.27 |
[ORACLE] 도움이 되는 내부테이블(?) (0) | 2011.03.02 |