안녕하세요.
이번 글에서는 CSV,DAT,TSV 등 파일들을 통해
오라클에 적재하는 Sql Loader에 대해 몇자 작성하려고 합니다.
먼저,
SQL Loader란
비오라클 데이터를 오라클데이터베이스에 적재.
쉽게 말해,
특정 구분자로 구별되어있는 파일을 DB화 해주는 좋은 기능입니다.
설명은 여기까지 하고, 실제 실무에 투입해봅시다.
작업 이전에 데이터 Import, Export 작업의 행위들은 서버의 부하를 야기하기 때문에, 충분한 서버 상황 검토 후 작업 하시기 바랍니다. 모든 데이터의 책임은 본인에게 있습니다.
핵심 준비물.
1.Oracle 사용자 및 권한 (당연한거지만 놓칠 수 있기에)
2.Import 하려는 테이블 생성. (Create Table)
3.CTL(Control) 파일, 적재하려는 파일
DB서버에 접속하여
CMD console에서 작업합니다.
작업순서
1. ctl 파일 만들기. (notepad에서 작성하면됩니다)
파일명은 noni_notice_20220626.ctl로 저장하겠습니다.
#OPTIONS(skip=1) --옵션 1개 스킵. Default=0
load data --SQL*Loader 시작 용어
characterset utf8 --인코딩 타입 설정
infile 'c:\noni_bak_20220626.csv' --넣으려는 데이터 경로위치.
append --아래 내용참조.
into table TN_NONI_NOTICE --테이블 명
fields terminated by '|' --구분자는 '|'로 설정
TRAILING NULLCOLS --빈데이터있을 경우 null
( --컬럼들
USER_ID
,USER_NM
,TEL_NO
,TITLE
,CONTEXT
,CREAT_DT
,MOD_DT
,DEL_YN
,AUTH_FLAG
)
append를 대체할 것이 있는데
Insert, append, replace. truncate 4가지 타입이 존재합니다.
=========================================
INSERT : 비어있는 테이블에 적재.
APPEND : 기존 데이터를 유지하고, 계속해서 데이터를 적재.
REPLACE : 기존 행을 모두 삭제하고 새로 적재
TRUNCATE : 기존 데이터를 모두 삭제하고 새로 적재
=========================================
저같은 경우는 비어있는 테이블에 Append로 자주 애용하는 편입니다.
CTL파일은 생성 완료했습니다.
이제 바로 sqlldr을 실행해봅시다.
2. SQLLDR 실행
sqlldr userid= noni/noni control ='C:\noni_notice_20220626.ctl' log ='C:\noni_notice_20220626_result.log'
한 줄 실행이면 끝납니다.
참쉽죠?
여기서 잠깐. 데이터를 넣는 도중 오류가 발생한다면?
sqlldr userid= noni/noni
control ='C:\noni_notice_20220626.ctl'
log ='C:\noni_notice_20220626_result.log'
bad = 'C:\noni_notice_20220626_bad.log'
discard = 'C:\noni_notice_20220626_discard.log'
bad 와 discard를 추가하여 데이터 오류 로그를 참고하면 됩니다.
'Oracle' 카테고리의 다른 글
Oracle Backup&Restore (0) | 2023.06.29 |
---|---|
Oracle TableSpace 생성 및 확보 (0) | 2023.06.27 |
ORACLE Listener log 관리 (0) | 2023.06.27 |
오라클 테이블, 컬럼 정보 조회 (0) | 2023.06.16 |
오라클 세션관리 스크립트 (0) | 2023.06.16 |