mssql에는 shift-jis나 gb2312등 ansi 캐릭터셋의 데이타가 각각 다른 테이블에 저장되어 있다.
이것을 mysql의 ansi캐릭터셋 데이터로 저장 하고자 한다.
mssql의 ansi 데이타를 mysql에 utf-8로 저장해 사용할까도 생각을 했지만,
기존 웹사이트 자체가 ansi 캐릭터셋을 사용하고 있어서 utf-8로 저장해 사용 할 경우 전체 웹사이트를 utf-8로 작업해 주거나, 매번 utf-8로 저장된 데이타를 ansi데이타로 변환해 보여줘야하기 때문에 페이지 로딩이 길어질까봐 일단 ansi데이타로 저장해 놓고, 차후 리뉴얼등을 통해 전체 사이트를 utf-8로 변환 할 기회가 생기면 db의 데이타 역시 그 때 변환하기로 했다..( 게으름.. 지연평가:to be lazy라 말하고 싶은..^^;; )
불행이도 두 서버간에 직접 데이타를 교환 하는 방법은 모두 지원하지 않았다.
( 둘다 각각 다른 호스팅 업체 이다 보니..ㅜ.ㅠ )
뭐 DB잘하시는 분들이야 mssql의 DTS를 이용해 방법이 있으시겠지만,
불행이도 난 DB를 잘 몰랐다.. ( 기껏해야 간단한 쿼리 날리는 정도.. )
어쩔수 없이 mssql의 데이타를 직접 받아 mysql에 넘겨주어야한다.
mysql의 경우 phpMyAdmin 에서 쿼리가 저장된 text문서를 업로드해 대량으로 데이타를 입력하는 방법이 존재했다.
1. mssql의 ansi 캐릭터셋 데이타를 받아오자.
ansi캐릭터셋의 데이타를 text형태로 받아오면 euc-kr이 아닌경우
정상적으로 받아오지 못하는 경우가 있었다.
어쩔수 없이 mssql의 DTS를 이용해 text형태로 저장한다.
이때 데이타 깨짐을 방지하기 위해 유니코드text, 레코드 구분 중앙선(|),
필드구분 탭, 문자열 묶음 기호는 없음으로 했다.
2. 유니코드 text파일을 편집해 쿼리문으로 만들자.
이때 사용한 툴은 울트라에디터 이다. 에디터플러스의 경우
유니코드 text를 copy & paste하는 과정에서 데이타가 깨지는 현상이 발생했다.
울트라에디터에서 아래의 순서로 치환해 쿼리는 말들었다.
가. 따옴표(') -> 쌍따옴표(")
나. 엔터(^p) -> html줄바꿈(<br>)
다. 탭( ^t) -> 쿼리 중간 구분자 (', ')
라. 중앙선(|) -> 쿼리 끝문장, 시작문장 ( '); ^p insert into xxxxxx value ( ' )
이런 순으로 치환을 했다.
3. 유니코드 text파일을 특정 캐릭터셋의 ansi 문서로 저장한다.
phpMyAdmin이 유니코드text파일이나, utf-8 text파일을 인식하지 못해
어쩔 수 없이 ansi text문서로 만들어야 했다.
이건 간단히 MFC를 이용해 유니코드 text파일을
특정 캐릭터셋의 ansi문서로 저장해 주는 유틸을 만들어 변환했다.
4. phpMyAdmin을 이용해 데이타를 저장한다.
이때 간혹 쿼리문이 잘못되어 중간에 실패하는 경우가 있는데.
ansi 캐릭터셋의 문서는 에디터플러스를 이용해 편집했다.
( 울트라 에디터의 경우 ansi문서를 copy & paste하는 과정에서
데이타 깨짐현상이 발행했다.
asni, unicode를 완변하기 지원하는 text편집기는 메모장 뿐이란말인가 ㅜ.ㅠ )
이렇게 힘겹게 힘겹게 데이타 변환 작업을 수행했다.
이것을 mysql의 ansi캐릭터셋 데이터로 저장 하고자 한다.
mssql의 ansi 데이타를 mysql에 utf-8로 저장해 사용할까도 생각을 했지만,
기존 웹사이트 자체가 ansi 캐릭터셋을 사용하고 있어서 utf-8로 저장해 사용 할 경우 전체 웹사이트를 utf-8로 작업해 주거나, 매번 utf-8로 저장된 데이타를 ansi데이타로 변환해 보여줘야하기 때문에 페이지 로딩이 길어질까봐 일단 ansi데이타로 저장해 놓고, 차후 리뉴얼등을 통해 전체 사이트를 utf-8로 변환 할 기회가 생기면 db의 데이타 역시 그 때 변환하기로 했다..( 게으름.. 지연평가:to be lazy라 말하고 싶은..^^;; )
불행이도 두 서버간에 직접 데이타를 교환 하는 방법은 모두 지원하지 않았다.
( 둘다 각각 다른 호스팅 업체 이다 보니..ㅜ.ㅠ )
뭐 DB잘하시는 분들이야 mssql의 DTS를 이용해 방법이 있으시겠지만,
불행이도 난 DB를 잘 몰랐다.. ( 기껏해야 간단한 쿼리 날리는 정도.. )
어쩔수 없이 mssql의 데이타를 직접 받아 mysql에 넘겨주어야한다.
mysql의 경우 phpMyAdmin 에서 쿼리가 저장된 text문서를 업로드해 대량으로 데이타를 입력하는 방법이 존재했다.
1. mssql의 ansi 캐릭터셋 데이타를 받아오자.
ansi캐릭터셋의 데이타를 text형태로 받아오면 euc-kr이 아닌경우
정상적으로 받아오지 못하는 경우가 있었다.
어쩔수 없이 mssql의 DTS를 이용해 text형태로 저장한다.
이때 데이타 깨짐을 방지하기 위해 유니코드text, 레코드 구분 중앙선(|),
필드구분 탭, 문자열 묶음 기호는 없음으로 했다.
2. 유니코드 text파일을 편집해 쿼리문으로 만들자.
이때 사용한 툴은 울트라에디터 이다. 에디터플러스의 경우
유니코드 text를 copy & paste하는 과정에서 데이타가 깨지는 현상이 발생했다.
울트라에디터에서 아래의 순서로 치환해 쿼리는 말들었다.
가. 따옴표(') -> 쌍따옴표(")
나. 엔터(^p) -> html줄바꿈(<br>)
다. 탭( ^t) -> 쿼리 중간 구분자 (', ')
라. 중앙선(|) -> 쿼리 끝문장, 시작문장 ( '); ^p insert into xxxxxx value ( ' )
이런 순으로 치환을 했다.
3. 유니코드 text파일을 특정 캐릭터셋의 ansi 문서로 저장한다.
phpMyAdmin이 유니코드text파일이나, utf-8 text파일을 인식하지 못해
어쩔 수 없이 ansi text문서로 만들어야 했다.
이건 간단히 MFC를 이용해 유니코드 text파일을
특정 캐릭터셋의 ansi문서로 저장해 주는 유틸을 만들어 변환했다.
4. phpMyAdmin을 이용해 데이타를 저장한다.
이때 간혹 쿼리문이 잘못되어 중간에 실패하는 경우가 있는데.
ansi 캐릭터셋의 문서는 에디터플러스를 이용해 편집했다.
( 울트라 에디터의 경우 ansi문서를 copy & paste하는 과정에서
데이타 깨짐현상이 발행했다.
asni, unicode를 완변하기 지원하는 text편집기는 메모장 뿐이란말인가 ㅜ.ㅠ )
이렇게 힘겹게 힘겹게 데이타 변환 작업을 수행했다.
반응형
'Dev > Web' 카테고리의 다른 글
UTF-8 인코딩 방식으로 다국어 페이지 만들기 (0) | 2005.06.21 |
---|---|
자바스크립트용 email 주소 검사 함수 (0) | 2005.06.21 |
메일 수신 확인에서.. (1) | 2004.01.09 |
asp 에서 round.. (5) | 2003.11.05 |
프린트.. (0) | 2003.11.04 |