본문 바로가기

work.Ch

DB Query시 한글 깨짐 문제


<문제>
작업을 하려는데 TOAD에서 오라클 DB Query시 한글 데이터가 ???로 깨져나오는
현상이 있었다.


<해결>
레지스트리의 NLS_LANG 값을 DB 정보와 일치시켜야 하는데, 중요한 점은
NLS_LANG 문자열이 모두 3곳에 존재한다는 것이고 모두 동일하게 수정해줘야한다.

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES\ID0


HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0


이곳 개발 DB는 NLS 값이 'AMERICAN_AMERICA.US7ASCII'로 되어있었으며,
최근에는 주로 'KOREAN_KOREA.KO16MSWIN949' 값을 많이 쓴다고한다.

참고) DB의 nls 정보를 보는 쿼리는 아래와 같다.

SELECT NAME, VALUE$ FROM SYS.PROPS$
WHERE NAME='NLS_LANGUAGE' OR NAME = 'NLS_TERRITORY'
OR NAME = 'NLS_CHARACTERSET';