@ 오라클 NLS_LANG 에 대한 설명

 

오라클 데이타베이스 설치시 데이타베이스 내에 사용하는 언어셋 설정하게 되어 있으며

오라클 데이타 베이스 내부에서는 설정된 언어셋을 사용하게 된다

 

현재 데이타베이스내에 사용되는 언어셋을 확인하는 방법
=> select * from v$nls_parameters;

 

그렇다면 환경변수로 설정하는 NLS_LANG 은 어떤 역활을 하는 것인지 알아보자

 

만약 NLS_LANG이 AMERICAN_AMERICA.UTF8으로 되어 있고 오라클데이타베이스가 문자/언어셋이
KO16KSC5601 으로 되어 있다면 데이타 삽입시 데이타가 UTF8으로 되어 있다고 간주하고
데이타를 오라클데이타베이스에서 사용하는 KO16KSC5601 형태로 인코딩하여 데이타를 삽입하게 된다

즉 NLS_LANG 은 데이타베이스에 삽입할 데이타의 형태가 무엇인지를 설정하게 되는 것이다.

만약 삽입할 데이타가 KO16KSC5601 형태의 한글 데이타이지만 NLS_LANG 환경 변수가
AMERICAN_AMERICA.UTF8 이라면 데이타베이스 삽입시 데이타가 UTF8 형태로 간주하여
데이타베이스 삽입을 위해 KO16KSC5601 형태로 인코딩하는 과정에서 문제가 발생하여
잘못된 데이타가 들어가거나 에러를 발생하고 삽입이 이루어지지 않게 된다
즉 KO16KSC5601 형태의 데이타를 UTF8으로 인식하여 이를 KO16KSC5601 형태로 인코딩하는
과정에서 문제가 발생하는 것이다.

 

다시 정리하면

NLS_LANG 환경 변수의 역활은 데이타베이스에 삽입할 데이타의 언어셋이 무엇인지를 설정하는데 사용되는 것이다

'Development' 카테고리의 다른 글

gdb로 STL 디버깅하기  (0) 2014.07.11
프로그램 코딩시 사용되는 vi 의 유용한 기능들  (0) 2014.07.11
AND