일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Maven #POM.XML
- spring boot batch
- mybatis
- 리스트
- tomcat 세팅
- Spring Boot
- drag&drop
- WAS 환경
- tomcat
- ORA-00600
- spring boot scheduler
- spring properties
- flashback
- 리스트 관리
- Spring
- Today
- Total
Hello World?
SQL Loader를 이용해 파일 내용을 테이블에 등록하기 본문
이전에 작성해둔 글을 다시 수정하여 올리는 글입니다.. 감회가 무릇.. 새롭네요 ㅋㅋ
Sql Instant Client 이상을 설치하신 분이시라면 SQL Loader를 설치하셨을 것입니다
이 정보는 SQL Loader를 통해서 데이터를 특정 테이블에 넣는 방법인데요
1. 우선 CSV 파일이나 TXT파일을 을 생성합니다
엑셀파일일 경우 새로저장을 누르고 특정문자 ( 여기선 쉼표 ) 로 나뉘는 CSV 파일로 저장을 합니다
ex ) c:\Test.txt 파일로 저장을 합니다
( 아래 소스를 보시면 이전 주소검색을 위해 우체국에서 지원하는 우편번호 검색을 만들기 위한 내용입니다
최근에 도로명으로 바꼇기 때문에 이전 방법과 틀려졌을 수도 있겠지만, 이전 자료라 양해 부탁드립니다 )
2. 확장명이 ctl 인 파일을 생성합니다
LOAD DATA INFILE [ csv 파일 혹은 TXT 파일의 위치 ] APPEND INTO TABLE [ 테이블명 ] FIELDS TEMINATED BY ',' ( 테이블의 컬럼들을 ' ,' 로 전부 구분하여 입력한다 ) ex ) LOAD DATA INFILE 'C:\test.csv' APPEND INTO TABLE T_ZIPCODE FIELDS TEMINATED BY ',' ( zipcode, do, city, gugun, dong, bunji ) * 테이블에 맞게끔 수정하시면 됩니다 |
이렇게 하시면 대개 String 기반의 테이블은 무사히?! 인서트가 되는 경우입니다
그러나 다른 형태의 경우 수정을 해줘야 하는 경우가 있습니다
가령 CLOB 이거나 Date 형태일때 말이죠..
아래처럼 Ctl 파일을 수정하시면 됩니다
데이터 타입일시 CLOB : [컬럼명] CHAR(8192000) nullif [컬럼명]=BLANKS DATE : [컬렴명] "TO_DATE(:[컬렴명],'YYYY/MM/DD HH24:MI:SS')" |
로 하시면 데이터의 누수없이 잘 되었습니다
3. 윈도우 커맨드를 실행시켜 아래와 같이 실행하시면 됩니다
혹시 insert를 하고자 하는 테이블이 다른곳에 있는 DB라면 아이디/비번에 @ 를 붙여 TNS NAME을 입력해 주시면 됩니다
|
4. 실패하면 위에서 기술한 log 파일에 가셔서 실패한 이유를 찾아보셔서 Ctl 파일을 수정하시면 더 빠르게 처리할 수 있습니다
'DATABASE > ORACLE' 카테고리의 다른 글
오라클에서 START WITH ~ CONNECT BY PRIOR 쓰기 (0) | 2011.08.18 |
---|---|
오라클 락 제거 (0) | 2011.01.14 |
대용량 테스트를 위한 PL/SQL 더미 데이터 입력 (0) | 2011.01.13 |
오라클에서 동적 아이피 사용시 리스너 파일 수정하기 (0) | 2010.10.27 |
오라클 사용자 생성 / 삭제 (0) | 2010.10.26 |