본문 바로가기
컴퓨터/Oracle

[Oracle]sql*loader data migration

by TEATO 2014. 7. 15.
반응형

[Oracle]sql*loader data migration


외부에 있는 데이터를 오라클 테이블 안으로 넣을때

여러가지방법이 있는데요. sql*loader를 이용해서 이관작업을 할 수 있습니다.


데이터를 업로드할때 사용할 파일은 이렇게 있습니다.


1. 컨트롤파일 :  업로드할때 필수로 필요한 파일입니다.

2. 텍스트파일 : 컨트롤파일에 데이터를 같이 넣을수 있고 텍스트파일로 외부에 놓을 수도 있습니다.

3. 로그파일 업로드할 때 로그들을 기록합니다. 필수는 아닙니다.

4. 배드파일 <-업로드할 때 에러나는 것들을 모아줍니다. 필수는 아닙니다.

5. DIS파일 <-업로드안된 것들을 모아서 기록해줍니다 필수는 아닙니다.




먼저 샘플로 테이블을 하나 만들어보겠습니다.


ulcase1.ctl이라는 컨트롤파일을 만들어서 업로드를 해보겠습니다.


INFILE * 라고하면 컨트롤파일 내부에 데이터를 넣어놓는법입니다.

,로 구분을 하며 "를 제거하고 저장해주는 걸 볼 수있습니다.

BEGINDATA 다음에 넣어줄 데이터를 넣어주면 됩니다.



SQL LOADER는 오라클 홈디렉토리에 BIN파일을 가보시면 있는데요 버전마다 이름이 다른것같습니다.

11G 버전에서는 sqlldr로 되있네요~ 이것을 이용해서 아까만든 데이터를 scott에 넣어보겠습니다.


테이블 이름은 같아야합니다.

데이터가 잘 들어간것을 볼 수 있죠~



이번에는 좀 다른식으로 데이터를 넣어보겠습니다.

INFILE옆에 ulcase2.dat이라는 파일을 지정해줬죠

ulcase2.dat에 데이터를 저장하는 방법입니다.

INTO TABLE emp 로 emp테이블에 넣는다는 것을 알 수 있으며

TRUNCATE옵션은 emp 테이블에 데이터가 있다면 삭제하고 넣는것입니다.

WHEN으로 해당하는 파일만 넣을 수도 있습니다.

또 한가지 특이한점은 칼럼명 옆에 position(01:04)이렇게 해주는것인데요

이뜻은 1칸부터 4칸까지 데이터를 뜻합니다.

다음을 보시죠



1부터 4칸까지 7782이라는 데이터가 있죠?

그다음엔 CLARK.... 이렇게 칸수가 정확히 나눠져있다면 칸수를 확실히 지정할 수 도있습니다.



아까와 같이 데이터를 로드했습니다. direct=yes 값은 로드를 좀더 빠르게 해주는 옵션입니다.


scott으로 들어가보니 데이터가 잘 들어와있는걸 볼 수 있습니다.


이와같이 sql loader를 사용해서 외부에 있는 데이터를 오라클의 테이블로

옮겨 올 수 있습니다~


반응형

댓글