적용방식 : 환경 변수, 설치시, session, function

주의 : parameter 무시할 것.(과거 버전 호환성 때문에 존재)

확인: V$NLS_PARAMETERS

넣을 수 있는 값: V$NLS_VALID_VALUES

 

 

(O) alter session set~

(X) alter system set ~

 

 리눅스

 S SYS> select * from v$nls_parameters where PARAMETER like upper('%CHAR%');

PARAMETER                                                        VALUE
---------------------------------------------------------------- ----------------------------
NLS_NUMERIC_CHARACTERS                                           .,
NLS_CHARACTERSET                                                 AL32UTF8
NLS_NCHAR_CHARACTERSET                                           AL16UTF16
NLS_NCHAR_CONV_EXCP                                              FALSE

 

 윈도우

 PARAMETER                                          VALUE
-------------------------------------------------- ---------------
NLS_NUMERIC_CHARACTERS                             .,
NLS_CHARACTERSET                                   KO16MSWIN949
NLS_NCHAR_CHARACTERSET                             AL16UTF16
NLS_NCHAR_CONV_EXCP                                FALSE

 

 

 

그러나 파라미터는

 S SYS> show parameter nls

NAME                                 TYPE     VALUE
------------------------------------ -------- ------------------------------
nls_calendar                         string
nls_comp                             string
nls_currency                         string
nls_date_format                      string
nls_date_language                    string
nls_dual_currency                    string
nls_iso_currency                     string
nls_language                         string   AMERICAN
nls_length_semantics                 string   BYTE
nls_nchar_conv_excp                  string   FALSE
nls_numeric_characters               string
nls_sort                             string
nls_territory                        string   AMERICA
nls_time_format                      string
nls_time_tz_format                   string
nls_timestamp_format                 string
nls_timestamp_tz_format              string

 

파라미터 믿지 말 것.

 

 

 

S SYS> select parameter, count(*) from v$nls_valid_values group by parameter;

PARAMETER                                                          COUNT(*)
---------------------------------------------------------------- ----------
CHARACTERSET                                                            247
SORT                                                                     87
TERRITORY                                                                96
LANGUAGE                                                                 64

 언어 셋팅은 어플리케이션 서버 따라감.

 

 

 

 

 

sort => 949, utf 에서 자동.

 

 

AL40UTF8... 최대 40bit 최소 8bit.

AL16UTF16  최대 16bit 최소 16bit.

 

캐릭터셋 선택시

일반적으로 client나 application server 고려

 

 

- 한국어 지원하는 캐릭터 셋

 S SYS> select parameter, value from v$nls_valid_values
        where parameter = 'CHARACTERSET' and
        (value like '%KO%' or value like '%UTF%');
PARAMETER            VALUE
-------------------- ------------------------------
CHARACTERSET         CL8KOI8U
CHARACTERSET         CL8KOI8R
CHARACTERSET         KO16KSC5601                        => nlssort 함수 사용.
CHARACTERSET         KO16DBCS
CHARACTERSET         KO16KSCCS
CHARACTERSET         KO16MSWIN949                        => binary sorting
CHARACTERSET         AL24UTFFSS
CHARACTERSET         UTF8
CHARACTERSET         UTFE
CHARACTERSET         AL32UTF8                            => binary sorting
CHARACTERSET         KO16KSC5601FIXED
CHARACTERSET         KO16DBCSFIXED
CHARACTERSET         AL16UTF16

13 rows selected.

 

 

binary 정렬과 문자 언어 정렬 같음.

 

즉 nls sort 는 binary 정렬과 문자 언어 정렬이 다름...

 

 

-NLS_LANG 쓰는 이유

영어, 독어 알파벳 순서 같음

영어, 러시아어 알파벳 순서 다름.

so ... nlssort 가 필요한거임.

 

S SYS> select to_char(sysdate,'day') from dual;

TO_CHAR(SYSDATE,'DAY')
------------------------------------
thursday

S SYS> alter session set NLS_DATE_LANGUAGE='FRENCH';

Session altered.

S SYS> select to_char(sysdate,'day') from dual;

TO_CHAR(SYSDATE,'DAY')
--------------------------------
jeudi

 

 

 

nls 셋팅

lbuilder 사용.

= 새로운 나라/언어가 생겼을때, 이를 적용하기 위함.

부가적으로 기존값을 보여줌.(완전히 새로운 것은 없음. 즉 수정해서 만들어라.

  •  모르는 나라/언어 의 적용을 위한 nls값 확인을 목적으로 사용가능.

+ Recent posts