다반 님이 쓰신 글 :
: 초보자 입니다.
: 엑셀데이타를 테이블안으로 옮기려 하는데 여러가지 방법이 있으시면 알려 주십시요... 부탁드립니다.
엑셀데이터를 DB로 옮기는 방법은 여러가지가 있습니다.
1) 엑셀에서 조작해서 옮기는 방법
엑셀과 editplus 와 같은 툴을 사용해서 옮기는 방법입니다. 어플을 만들지 않아도 된다는 장점이 있습니다.
1. 엑셀로 편집한 화일을 셀과 필드의 갯수가 맞게 정렬한다.
2. 제일 앞 셀에는 Insert into Table values ( 를 제일 마지막 셀에는 ); 를 넣는다.
3. ); 다음 셀에는 줄바꿈 구분자로 & 를 사용하였다.(한줄 길게 세로로 삽입한다.)
4. 제어판 -> 국가별설정 -> 숫자 에서 구분기호를 ^ 로 바꾸었다.
5. 엑셀에서 csv 화일로 저장한다. 그러면 구분자가 ^ 로 저장이 된다.
6. 에디트플러스에서 csv화일을 불러와서 정렬한다.
이때, 영문자나 긴공백앞에서 임의로 줄바꿈이 되는 경우가 있다. 이것은 수동으로 갖다 붙여 줘야 한다.
7. 에디트플러스에서 & 를 \n (줄바꿈)으로 치환한다.
8. input 과 같은 명령어로 집어 넣던지..데이타가 많으면 loop 로 돌려서 집어 넣는다.
(insert into ... 처럼 된 일반 쿼리 문이므로 그대로 실행만 하면 됩니다.)
2) DbGird 와 같은 Gird 로 불러서 옮기는 방법
툴을 한번 만들어 두면 위에꺼 보다 편한 방법입니다.
Gird 로 해당 데이타를 불러 오고(다른건 잘모르겠고 TMS Gird는 기본적으로 지원하더군요)
Gird에 있는 데이터를 Db에 집어 넣는 어플을 만들어서 집어 넣는다.
3) Grid를 거치지 않고 바로 DB 입력
아직까지 이렇게는 안해 봤습니다. 엑셀데이타가 많고 일정한 형식외에 특수문자나 예상하지 못한 공백이 있다면
시행착오가 많은 방법입니다. 물론 어플을 만들어서 입력해야 겠구요..
대충 저는 위에 1) 2) 이 두가지 방법으로 많이 하는데 blob 와 같은 type 으로 몇십라인씩 들어 있는 텍스트문들이 항상 골치 더군요. 줄바꿈 이나 특수문자 때문에 필드가 안맞거나 원본대로 입력되지 않는 경우가 종종 발생합니다.
10만건 가까이 된 엑셀데이타를 집어 넣기 위해서 밤을 샌적도 있구요. 결론은 자꾸 하다보면 된다는 겁니다...
|