CHARACTER SET은 DB의 테이블에 입력 가능한 언어를 의미하고,
NLS_LANG은 오라클에서 표시하는 메세지 및 각종 SQL문에 입력가능한 언어를 의미한다.!!
1. NLS_LANG 변경
:언어설정 변경은 OS레벨과 DB레벨 둘 다 수정해야 한다.
1) OS레벨에서 변경(ORACLE 10g 기준)
- WINDOWS
:실행 창 -> regedit -> HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1
에서 NLS_LANG값을 AMERICAN_AMERICA.KO16KSC5601로 변경한다.
(변경 값을 JAPANESE_JAPAN.JA16SJIS로 설정하면 일본어로 표시됨)

- LINUX
:오라클 설치 시, 지정해주었던 .bash_profile에서 오라클 언어 환경변수를 다음과 같이 변경한다.
export NLS_LANG = AMERICAN_AMERICA.KO16KSC5601
(리눅스도 마찬가지로, 변경 값을 JAPANESE_JAPAN.JA16SJIS로 설정하면 일본어로 표시됨)
2) DB레벨에서 변경
:먼저 현재 DB의 언어설정을 다음 SQL문으로 확인해보자.
SQL> COL name FORMAT a20
SQL> COL value$ FORMAT a40
SQL> SELECT name, value$ FROM sys.props$ WHERE name = 'NLS_LANGUAGE';
NAME VALUE$
-------------------- ----------------------------------------
NLS_LANGUAGE AMERICAN_AMERICA.KO16KSC5601
NLS_LANGUAGE의 값이 AMERICAN_AMERICA.KO16KSC5601아니라면 다음 SQL문으로
AMERICAN_AMERICA.KO16KSC5601로 변경한다.
SQL> UPDATE sys.props$ SET value$ = 'AMERICAN_AMERICA.KO16KSC5601'
WHERE name = 'NLS_LANGUAGE';
1 행이 갱신되었습니다.
SQL> commit;
커밋이 완료되었습니다.
2. CHARACTER SET 변경
현재의 문자설정을 다음 SQL문으로 확인해보자.
SQL> COL name FORMAT a35
SQL> COL value$ FORMAT a35
SQL> SELECT name, value$ FROM sys.props$ WHERE name LIKE '%CHARACTERSET%';
NAME VALUE$
----------------------------------- -----------------------------------
NLS_CHARACTERSET KO16KSC5601
NLS_NCHAR_CHARACTERSET KO16KSC5601
SQL>
NLS_CHARACTERSET, NLS_NCHAR_CHARACTERSET 의 값이 KO16KSC5601아니라면
다음 SQL문으로 KO16KSC5601로 변경한다.
SQL> UPDATE sys.props$ SET value$='KO16KSC5601' WHERE name='NLS_CHARACTERSET';
1 행이 갱신되었습니다.
SQL> UPDATE sys.props$ SET value$='KO16KSC5601' WHERE name='NLS_NCHAR_CHARACTERSET';
1 행이 갱신되었습니다.
SQL> commit;
커밋이 완료되었습니다.
★참고로, NLS LANG과 CHARACTER SET을 일본어로 변경하고자 하는 경우엔
다음 SQL문을 실행하면 된다.
--NLS LANG 변경
UPDATE sys.props$ SET value$ = 'JAPANESE' WHERE name = 'NLS_LANGUAGE';
--CHARACTER SET 변경
UPDATE sys.props$ SET value$='JA16SJIS' WHERE name='NLS_CHARACTERSET';
UPDATE sys.props$ SET value$='AL16UTF16' WHERE name='NLS_NCHAR_CHARACTERSET';
댓글 없음:
댓글 쓰기