DB 캐릭셋이 다를 경우 0 4 4,215

by 둘둘하나 [DB 기타] [2024.04.24 10:22:30]


안녕하세요 캐릭터셋이 다른 db에 insert 하는 경우 질문 드립니다.

A 시스템에 연결된 B db로 insert 하는 때에 A의 캐릭터셋은 utf8이고 B는 us7ascii입니다.

한글이 포함된 컬럼은 백단에서 ksc5601, ms949로 변환하여 B에 insert 시도해 보았는데 깨짐 현상이 있네요...

혹시 다른 방법이 있다면 조언 부탁 드립니다.

감사합니다.

by 신히 [2024.04.24 13:33:22]

DBMS 종류와 접속방법(OCI, JDBC, ODBC 등), 구현 언어에 따라 다릅니다. 상세정보가 필요해요.


by 둘둘하나 [2024.04.25 11:15:55]

오라클 11.2.0.4에 jdbc로 접속하고 자바로 변환해서 인서트 시도하고 있습니다. 추가로 필요한 정보 있으신가요?


by 신히 [2024.04.25 16:16:11]

us7ascii는 charset일 뿐이고 실제 B에 저장되는 인코딩 방식이 무엇인가요? 만일 B가 KSC5601(MS949는 어차피 KSC5601슈퍼셋이니 제외하겠습니다)로 되어 있다면 KSC5601로 인코딩 후 저장하면 무조건  B 시스템에 정상적으로 저장되어야 합니다.

만일 그러함에도 깨어진다면, 현재 서버(자바가 실행되는 환경)의 charset 이 UTF8이고 인코딩된 문자열이 UTF8로 가정되므로 UTF8로 다시 인코딩되어 저장될 수 있습니다.

이를 정확하게 확인해보시려면,  현재 OS의 CHARSET이 KSC5601(euckr)이거나 MS949(Windows)인 환경에서 NLS_LANG을 KSC5601로 설정하고 SQLPLUS에서 B 시스템에 접속한 후 한글을 INSERT 해보세요.
이 수행결과는 상대 시스템에서 안깨어지게 저장되어야 합니다.


by 둘둘하나 [2024.04.30 14:44:30]

말씀해주신 내용 참고해서 문제 해결했습니다 감사합니다!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입