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 |