안녕하세요. DBeaver와 같은 JDBC 연결 프로그램에서 인포믹스의 한글 데이터가 깨져보이는 경우가 있습니다.
이런 현상을 해결하기 위한 방법을 정리해보려고 합니다.
우선 대부분의 경우는 인포믹스 데이터베이스 로케일이 영문일 가능성이 높습니다.
아래와 같이 데이터베이스의 로케일을 확인하실 수 있습니다. 영문 로케일은 일반적으로 en_US.819 로 표시됩니다.
데이터베이스에 한글 데이터 INSERT 문장을 실행하면 오류메시지(Code-set conversion function failed due to an illegal sequence or invalid value.)가 발생합니다.
이번에는 터미널에서 한글 데이터를 입력해놓고 조회를 해봅니다. 조회는 오류가 발생하지 않지만 아래처럼 알아볼 수 없는 깨진 글자가 나옵니다.
근본적인 해결방법은 데이터베이스 생성시 한글 코드를 지원하는 데이터베이스에 마이그레이션 하는 것이 좋지만, 실제 사용중인 데이터베이스를 변경하기는 어려우므로, JDBC Driver에서 지원되는 기능을 사용하여 이 현상을 우회할 수 있습니다.
DBeaver Connection 설정에서 JDBC Driver 사용자 속성 NEWCODESET을 추가합니다.
해당 속성을 추가해서 JDK 로케일(ksc5601)과 인포믹스 JDBC 드라이버의 내부 테이블(8859-1,819)과 매핑시킬 수 있습니다.
속성을 추가한 후 새로 데이터베이스에 연결하면 한글 데이터 입력과 조회 모두 잘 실행됩니다.
NEWCODESET 속성은 인포믹스 서버 10버전 부터 소개되고 있는데, 이에 대응하는 JDBC Driver는 3버전 이상입니다.
DBeaver에서 JDBC Driver 3.00.JC1 버전으로 연결 테스트를 해보니 오류가 나네요. 최소 3.5버전 이상으로 테스트 해보시길 바랍니다.
'Informix > informix reference' 카테고리의 다른 글
How to obtain the actual date and time in a stored procedure (0) | 2022.07.05 |
---|---|
테이블을 특정 시점으로 복구하는 기능 (0) | 2022.06.27 |
주차 (Week number) 계산하기 (0) | 2021.10.20 |
Round robin 테이블 기능 개선 (0) | 2021.10.20 |
QUERY TIMEOUT 설정 (0) | 2021.10.20 |