NLS 파라미터를 한글로 변경하였습니다. 파라미터 적용을 시키기 위해 DB를 재부팅 하니 한글이 깨지는 현상이 발생했습니다...
오렌지나 토드 같은 클라이언트 툴을 이용해 DB에 접속하면 문제 없으나, shell에서 sqlplus를 이용해서 접속하면 문제가 발생하더라고요...
발생 이슈
- 쉘에서 sqlplus 를 이용해 접속 시 한글 깨짐현상
변경 파라미터
NLS Environment
NLS_LANGUAGE='KOREAN'
NLS_TERRITORY='KOREA'
NLS_CURRENCY='₩'
NLS_ISO_CURRENCY='KOREA'
NLS_NUMERIC_CHARACTERS='.,'
NLS_DATE_FORMAT='RR/MM/DD'
NLS_DATE_LANGUAGE='KOREAN'
NLS_SORT='BINARY'
발생 원인
- Shell과 oracle의 설정이 안맞아서 발생한 문제 발생합니다. Shell을 통해 직접 oracle에 붙는 경우에만 한글이 깨져 보이게됩니다. 따라서 toad와 같은 클라이언트 툴을 이용해 접속시에는 문제가 없습니다.
발생 현상
아래와 같이 한글은 물음표로 보임.
SQL> set linesize 150
col name for A30
col value for A30
select name, value from v$parameter where name like 'nls%';
NAME VALUE
--------------------------------------------------------
nls_language KOREAN
nls_territory KOREA
nls_sort BINARY
nls_date_language KOREAN
nls_date_format RR/MM/DD
nls_currency ???
nls_numeric_characters .,
nls_iso_currency KOREA
nls_calendar
nls_time_format
nls_timestamp_format
nls_time_tz_format
nls_timestamp_tz_format
nls_dual_currency
nls_comp BINARY
nls_length_semantics BYTE
nls_nchar_conv_excp FALSE
17 ?? ???????.
해결 방법
먼저 oracle의 character set을 확인합니다. 한글을 지원하는지 먼저 확인한 뒤 지원하는데도 불구하고 한글이 깨지면 shell과 설정에 문제가 있을 수 있습니다.
SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';
PARAMETER VALUE
----------------------------------------------------------------------------------------------------------------------NLS_CHARACTERSET AL32UTF8
[oracle@jhtest ~]$ export NLS_LANG=KOREAN_KOREA.AL32UTF8
발생 이유나 다른 해결방법이 또 있다면 댓글로 좀 알려주세요..고수님들의 조언을 기다립니다..!
'DataBase Admin > Trouble shooting' 카테고리의 다른 글
[MySQL - Error 2013/Error 2006] (0) | 2022.10.18 |
---|---|
[MySQL - 임시테이블(tmpdir) FULL 이슈] (0) | 2022.10.18 |
[Oracle - startup error] ORA-01565,ORA-27037 (0) | 2022.03.10 |
[Oracle - ORA-12520] tns-15220 error (0) | 2022.03.10 |
[Oracle - Password 에러] ORA-20001 , ORA-65096 (0) | 2022.02.26 |