SQL loader사용법 - 샘플화일 첨부

|

sqlloader를 사용하기 위해서는 미리 테이블이 만들어져 있어야 함.

sqlloader 화일 샘플

#!/bin/csh
if ( $#argv != 2) then
echo "Usage: $0 <DataFile> <logFileName>"
exit 1
endif

sqlldr userid=oracle/oracle control=tblmacs_tmpidrlog.ctl data=$1 log=$2.log commit_discontinued=true

data는 raw데이타 들어갈 부분, log는 생략해도 무방..., commit으로 시작하는 부분도 생략가능

실행방법

sqlloader.sh "실제데이타 화일"
ex) sqlloader.shSWBLS1_FWEBIDR1_ID0001_T20030603000109.DAT

이런식으로 사용 가능(원격폴더 지정시)
## sqlloader.sh /bear02/macslog/20030401/SWBLS1_FWEBIDR1_ID0001_T20030401000110.DAT /bear01/brewlog/src/eshock/log/z0000

control화일 샘플

load data
INFILE *
append
into table TBLMACS_TMPIDRLOG
when RECORD_TYPE='R'
(
RECORD_TYPE position(01:01) char
,RECORD_SEQposition(02:08) char
,SVC_TYPEposition(09:09) char
,CALL_NUMposition(10:20) char
,CHARGE_NUMposition(21:31) char
,CP_NO position(32:36) char
,CONTENTS_NO position(37:38) char
,MENU_NO position(39:40) char
,CALL_STARTposition(41:54) char
,DURATIONposition(55:63) char
,PKT_CNT position(64:72) char
,PHONE_TYPEposition(73:87) char
,BROWSER_VER position(88:102) char
)

position은 순서대로 1부터 1까지 자름, 그다음 2칸째부터 8칸 이후까지를 의미함.





[ SQL*Loader 사용하기 ]
작성일자 : 2001년 6월 11일
작 성 자 : 조수환


1. SQL*Loader를 이용해서 Data를 넣을 파일을 Excel에서 생성한다.
- 파일을 *.csv로 저장을 한다.
(SQL*Loader를 사용하기 위해서는 ,(콤마)가 필요하다)
즉, 다음과 같은 데이타 포멧이면 된다.
10000,CEO,등록
10020,CEO CEO실,등록
150000,솔루션사업부문,등록
150010,솔루션사업부문 신프라팀,등록
150020,솔루션사업부문 기관영업팀,등록
150030,솔루션사업부문 사업지원팀,등록
150040,솔루션사업부문 CS팀,등록

2. csv 파일에는 departcode, departname, gubun 의 형식을 데이타가 들어가 있다.

Ex>departcode, departname, gubun
---------- ------------------------------
180040 경영전략부문 홍보팀
190000 재경부문
190010 재경부문 재경기획팀
190020 재경부문 재경팀
190030 재경부문 물류지원팀
200000 인재기획실


3. Data를 넣을 테이블의 명세서는 다음과 같다.
SQL> desc departinfo;
이름 널?유형
---------- -------- ------------
ID NOT NULL NUMBER
DEPARTCODE NUMBER(6)
DEPARTNAMEVARCHAR2(40)
CREATEDATEDATE
MODIFYDATEDATE
GUBUN CHAR(4)


4. 콘트롤 파일(abc.ctl) 을 하나 만들고, 다음과 같은 내용을 기록한다.

LOAD DATA
INFILE '부서코드.csv'-- 참조할 파일은 부서코드.csv
replace-- 테이블의 내용을 모두 삭제한 후에 입력
INTO TABLE departinfo-- 데이타가 들어갈 테이블 명
fields terminated by ','-- ,(콤마)를 기준으로 구분한다.
(
idsequence(1,1),-- 1부터 1씩 증가시킨다.
departcodeinteger external,-- 외부의 데이타를 가져온다.
departnamechar(40),-- 문자열은 40
createdatesysdate,-- Load를 할 때 sysdate값을 넣어준다.
modifydatesysdate,-- Load를 할 때 sysdate값을 넣어준다.
gubunchar(4)-- 문자열은 4
)


5. SQL*Loader를 실행시킨다.
# sqldlr atomx/akstp@sysora control=abc.ctl log=0611.log
- > 위와 같이 하면 부서코드.csv의 내용이 conrolfile의 정의와 함께
테이블에 쭉 들어간다.



<참조> 다른 컨트롤 파일의 내용

1. 컨트롤 파일(bbb.ctl)의 내용
LOAD DATA
INFILE '사원인사.csv'
replace
INTO TABLE companyinfo
fields terminated by ','
(
idsequence(1,1),
companycodeinteger external,
namechar(20),
departcodeinteger external,
telchar(4) nullif tel = blanks,-- 만일 공백이면 NULL상태로 만든다.
enteringdatedate ,
createdatesysdate,
modifydatesysdate,
gubunchar(4)
)


2. sqlldr atomx/akstp@sysora control=bbb.ctl log=0611.log


'기본 카테고리' 카테고리의 다른 글

컴퓨터 자동종료 설정하기  (0) 2010.10.15
오라클 AQ (advanced queuing)  (0) 2010.10.15
소스인사이트 단축키(2)  (0) 2010.10.11
앱 스토어 현황 분석  (0) 2010.10.09
[펌] ACE Framework에 사용된 패턴들  (0) 2010.10.02

+ Recent posts