티스토리 뷰

반응형

안녕하세요. Informix 12.10.FC14버전에서 한글이 포함된 경우 SUBSTRING_INDEX함수가 오작동하는 현상을 발견해서 공유드립니다. 참고로 Informix의 SUBSTRING_INDEX 함수는 구분자를 사용하여 문자열을 추출하는 함수입니다. 자바의 split 함수, MySQL/MariaDB의 SUBSTRING_INDEX 함수와 동일한 기능을 제공합니다.

 

아래는 SUBSTRING_INDEX 함수 사용시 잘못된 결과가 발생하는 케이스입니다. 마지막 글자가 잘리는 문제가 있네요. 문자열에 한글이 포함되어 있을때만 발생합니다.

> select substring_index('가나;다라;마바사;아자차카',';', 1) from sysmaster:sysdual;


(constant)

가

1 row(s) retrieved.

> select substring_index('가나;다라;마바사;아자차카',';', 2) from sysmaster:sysdual;


(constant)

가나;다

1 row(s) retrieved.

아래 링크의 IBM 문서에 따르면 Informix 12.10.xC14 버전의 defect로 의심됩니다.

핀란드어 로케일의 예시를 보여주고 있는데 한글과 같이 멀티바이트 캐릭터의 문제는 아닌 것으로 보입니다.

어쨌든 12.10.FC15 버전 이상에서는 수정된 문제라고 하니 최신 버전을 사용하는 것이 좋겠네요.

반응형
댓글