728x90

인포믹스에 깨진 (일반적으로는 코드셋이 맞지 않은 경우) 문자열이 입력된 경우가 드물게 있습니다. 

10버전 이하에서는 코드셋 확인이 느슨했기 때문에 코드셋이 맞지 않아도 데이터가 입력되는 경우가 있었던 것 같습니다.


또한 TEXT/CLOB 같은 문자열을 저장하기 위한 타입은 데이터베이스 코드셋에 없는 문자열 입력이 가능하므로 이러한 상황이 발생할 여지가 있습니다.


어쨌든 결론적으로 IFX_UNLOAD_EILSEQ_MODE 라는 환경변수를 설정함으로써 코드셋이 맞지 않은 데이터를 UNLOAD할 수 있습니다.

아래 IBM 문서 내용을 참고해주세요.



Use the IFX_UNLOAD_EILSEQ_MODE environment variable to help migrate databases from Informix® Version 10 to Version 11.50 or 11.70, where character data might be encoded with a codeset that is different than the codeset used to create the Version 10 database.

In earlier versions of Informix, it was possible to load character data into a database that did not match the locale and codeset of the database. For example you could load Chinese data into a database created with the DB_LOCALE=en_US.8859-1 codeset. In newer versions of Informix, to insert Chinese data you would need a database created with the Chinese (DB_LOCALE=zh_tw.big5 locale and codeset.

ImportantFor databases created with Version 10 and Client SDK 2.4, when you attempt to unload the invalid character data an error occurs unless you have set this environment variable. The IFX_UNLOAD_EILSEQ_MODE environment variable enables DB-Access, dbexport, and High Performance Loader (HPL) to unload character and bypass the GLS validation that normally occurs when you unload data by using the Version 11.50 and 11.70 tools.
To use this environment variable, set it to any non-empty string.
Read syntax diagramSkip visual syntax diagram
>>-setenv--IFX_UNLOAD_EILSEQ_MODE--value-----------------------><
value
Any alpha or numeric value. For example: yes, true, or 1.
This environment variable takes effect when character data is being fetched or retrieved from the database.
setenv IFX_UNLOAD_EILSEQ_MODE 1
setenv IFX_UNLOAD_EILSEQ_MODE yes
setenv IFX_UNLOAD_EILSEQ_MODE on
copy to clipboard

This environment variable is similar to setting the EILSEQ_COMPAT_MODE configuration parameter in the onCONFIG file. The configuration parameter affects character data that is inserted into the database, whereas the IFX_UNLOAD_EILSEQ_MODE environment variable affects character data that is unloaded from the database.


출처

https://www.ibm.com/support/knowledgecenter/ko/SSGU8G_11.70.0/com.ibm.sqlr.doc/ids_sqr_416.htm

728x90
728x90

# EILSEQ_COMPAT_MODE:
# When processing characters, IDS checks if the characters are valid
# for the locale and returns error -202 if they are not. This causes
# problems in some applications. This parameter preserves the old
# behavior and permits these characters.
# 0 => Disallow illegal characters. This is the default behavior.
# 1 => Allow illegal characters.
#

IDS 10.00.xC4 이상에서 문자 검사가 엄격하게 되었기 때문에, 잘못된 문자가 포함된 데이터(문자열 값)의 처리에서 오류가 발생합니다.

그러나 기존 응용 프로그램의 운영에 지장을 줄 수 있기 때문에, IDS 10.00.xC7에서 이전 버전처럼 동작 모드 (문자열 값 무단 문자를 확인하지 않음)을 지정하기위한 매개 변수 EILSEQ_COMPAT_MODE가 신설되었습니다.
그러나 잘못된 문자에 의한 영향에 대해서는 자기 책임입니다.


http://oninit.ti-da.net/e2452099.html

http://ilovedb.byus.net/zboard/view.php?id=ifx_qna&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=329

http://www-01.ibm.com/support/docview.wss?uid=swg1IC52656

728x90

+ Recent posts