[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를 사용해서 외부에 있는 데이터를 오라클의 테이블로
옮겨 올 수 있습니다~
'컴퓨터 > Oracle' 카테고리의 다른 글
[Oracle]Multi listener 오라클 멀티리스너 (0) | 2014.07.16 |
---|---|
[Oracle]Listener, tnsnames 원격접속 (0) | 2014.07.15 |
[Oracle]Audit 감시파일 (0) | 2014.07.15 |
[Oracle]Profile 오라클 프로파일 (0) | 2014.07.15 |
[Oracle]User 관리(Account lock, expire) (0) | 2014.07.15 |
댓글