sql*loader란 오라클이 제공하는 외부 데이터를 로드하는 프로그램입니다.

자세한 설명은 생략하고..

sql loader를 사용하려면 2개의 파일이 필요합니다.
외부 데이터가 들어있는 파일 하나와 컨트롤 파일 하나.

데이터 파일에는 일정한 양식이 필요합니다.
데이터와 데이터 사이에 임의의 구분자로 구분을 해야 되는데요.



이러한 데이터 파일을 만드는 좀더 간단한 방법은 엑셀을 이용하는 것입니다.

로드할 데이터를 엑셀에 이렇게 입력을 합니다.



데이터 입력 후 저장할 때 새 이름으로 저장을 눌러 주시구요.
파일 형식을 아래와 같이 CSV로 저장을 합니다.


뭐 굳이 쉼표로 분리 안 해도 되구요. 탭이나 공백 아니면 다른 구분자를 쓰셔도 상관없습니다.

다음은 컨트롤 파일인데요.

load data
infile 'D:\Study\Project\졸업작품\교과목목록\공통.csv'
append
into table courses
fields terminated by ','
(course_id, title, num_credits)

메모장에 위처럼 작성 후, 확장자를 .ctl로 저장합니다.

각각 라인이 의미하는 것은
infile : 파일의 경로와 데이터 파일명
append : 테이블 내에 기존의 데이터 뒤로 지금 로드하는 데이터들을 추가한다는 의미
into table : 데이터를 로드할 테이블명
fields terminated by '' : '' 안에 구분자를 써주면 되구요
() : 마지막 괄호 안에 순서에 맞게 컬럼명을 써 줍니다.

주의 : 물론, 테이블이나 컬럼은 미리 만들어 두어야겠죠?

자, 이제 준비는 끝났구요.
마지막 명령어만 입력하면 됩니다.
SQL@Loader 의 명령어는 sqlldr 입니다.

c:\> sqlldr userid=ID/PASSWORD control='경로\파일명'

userid : user id와 user password
control : 아까 만들어두었던 컨트롤 파일의 경로와 파일명

주의 : sql*plus 에서 명령어 치시면 안되요. os명령창으로 나와서 쓰셔야 됩니다.
       아니만 저처럼 이렇게 하시구요ㅋ


리눅스 환경이라면
SQL> !sqlldr userid………  하시면 되겠죠?


끝입니다ㅋ


userid와 control 말고도 쓸 수 있는 옵션이 더 있는데요.
sql loader나 control file의 좀더 추가적인 설명을 원하신다면 오라클클럽을 참조하세요 ㅋ
http://www.oracleclub.com/article/11861 ← 이 글입니다.


Posted by 야동우
,