Q & A

Re: Re: Re: 공백 문자 삽입 시, '?' 문자 관련

Date2019.09.03 / Hit : 14474
안녕하세요. 웨어밸리 오렌지 팀입니다.

해당 데이터가 맞습니다.
WHY 컬럼의 실제 화면에 ?표로 보이는 부분이 위에 정상으로 보이는,
값과 달리, 공백문자인 20이 아닌, C2A0값을 가진 것으로 확인됩니다.
C2A0값에 대해서는 chr(49824) 와 같이, 1바이트 공백이 아닌 2바이트 공백문자를 말합니다.

chr(32)
1byte
trim가능, replace 처리가 space로 만든 공백으로 가능

chr(49824)
2byte
trim불가, replace 처리가 space로 만든 공백으로는 불가능

출처: https://babolsk.tistory.com/1037 [사소한 경험 기록공간]



해당 데이터에서 어떤 이유로 같은 공백 표현 값을 20과 C2A0으로
각각 1바이트 공백/ 2바이트 공백으로 사용하는지 이유는 알 수 없으나,
해당 데이터베이스가 AL32UTF8로 Unicode 데이터로서 적합한 상태이므로,
기존 Orange for Oracle 의 Ansi 버전이 아닌 Unicode 버전으로 설치하여 사용하시면
자료 검색에 불편함은 없을 것이라 생각됩니다.
(마찬가지로 SQLPlus 도 Ansi 로 구성되어있어서 동일하게 ?로 표시된 것으로 생각됩니다.)
기존에 이미 설치하신 Ansi 버전이 있으시면,
Unicode 버전으로 추가 설치하실 경우 라이선스에 영향을 미치지 않으므로,
정상적으로 사용 가능합니다.
-
안녕하세요. 웨어밸리 오렌지팀입니다.

종합적으로 봤을 때, 데이터의 문제로 보셔야 할 것으로 생각됩니다.
일반적인 공백문자는 CHR(32) 값 이어야 하지만,
말씀하신 것처럼, 데이터의 이관과 같은 일이 발생했을 때,
일반 공백문자를 CHR(49824)로 변환되는 일이 종종 발생한다고 하는 사람도 있습니다.
https://thdnf1004.tistory.com/entry/ORA12899-value-too-large-for-column

다만 Orange에서 Unicode를 Ansi로 변환하는 과정을 거치지 않아서,
NLS_LANG 값의 설정을 따르지 않고, Unicode 그대로 표시하기 때문에,
Unicode로 보시라고 말씀 드리는 것이지,
데이터 자체가 CHR(32)로 변경되거나 하진 않습니다.
따라서 MS-SQL에서 보이는 ‘?’가 보이는 데이터가 변경되진 않습니다.

해당 변경 현상에 대해서는 CHR(49824)로 구글 검색해 보시거나,
Oracle에 문의해 보시면, 더 자세한 내용을 찾으실 수 있을 거라 생각합니다.
https://community.oracle.com/thread/1073969?tstart=0

또한 EAI가 실행되는 PC에서 Unicode 버전 설치를 한다고 해서
해결되는 내용은 아닐 것이라 생각됩니다.

감사합니다.
  • 대표전화
    1660-1675

  • 기술 문의
    02-6931-1734

  • 오렌지 문의
    070-8666-8175

  • 라이선스 문의
    02-6931-1728