1,742
yesterday 2,274
visitor 23,897,160
49

NLS_LANG 정리

조회 수 139256 추천 수 0 2011.10.20 15:31:24

NLS_LANG 정리

DB : SELECT SYS_CONTEXT('USERENV','LANGUAGE') "NLS SET" from dual;

reg : HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY불라불라..   : 문자열 NLS_LANG

NLS_LANG 

1. KOREAN_KOREA.KO16MSWIN949

2. AMERICAN_AMERICA.WE8MSWIN1252

3. KOREAN_KOREA.UTF8

......

 


NLS_LANG = [언어]_[영역].[캐릭터셋]
<language>_<Territory>.<client characterset>
ex) AMERICAN_ARERICA.KO16KSC5601, AMERICAN_AMRRICA.UTF8
● <Territory> - 영역정보, 달력 설정 방법, 통화기호(달라), 숫자그룹
날짜 포맷(한국 - "05/08/12 오후 07:28:03", 체코 - "10.08.05 19:28:03")
Language 값만 설정하면, Language 값을 따른다. ( AMERICAN ==> AMERICA )

● <language> - 캐릭터셋, 정렬방식, 날짜 표기에 사용되는 기호(년/월/일, YYYY/MM/DD)
Default 값은 AMERICAN 이다.
실제 날짜 표기(TO_CHAR,TO_DATE 실행시 - 월요일, MON 으로 표시를 좌우하는
NLS_DATE_FORMAT 값은 NLS_LANGUAGE 을 따른다. [하단. 테스트 1 참조 ]

● <client characterset>
◇ 기본적으로 Server characterset 과 동일하게 설정된다.
- 클라이언트에서 캐릭터셋만 설정하면, 디폴트로 AMERICAN_AMERICA 로 Territory_language 값이 설정된다.
◇ Client Characterset 을 Server 와 다르게 설정 상태에서,
SQL> SELECT SYS_CONTEXT('USERENV','LANGUAGE') "NLS SET" from dual;
을 실행 하여도, 항상 CharacterSet 은 항상 서버 CharacterSet 값을 가져온다.
◇ client characterset을 서버와 다르게 하는 경우는 크게
1. 다른 캐릭터셋 DB로 데이타 이전시(EXPORT/IMPORT)
△ EXPORT/IMPORT 시에는 반드시 서버의 Character Set 동일하게 설정 후 Export/Import 한다.
△ 다른 캐릭터셋의 DB(데이타가 깨지지 않고, 지원되는 경우, SubSet Characterset 일경우)로 IMPORT 시에는
Import 대상의 DB 캐릭터셋으로 환경 설정 후, Export/Import 한다.
2. Server(UTF8) - Client(KO16KSC5601)
△ 다국어 지원되는 데이타베이스에다 한글 입출력 하기 위해서는
입력시 - 내가 입력 하는 데이타의 캐릭터셋이 한글임을 알리기 위해서,
출력시 - Unicode 의 Data를 한글로 표현해 달라고 하기 위해서
지금까지 DB 가 UTF8 이면, Client 도 UTF8 로 설정하면 되는 줄 알았는데. 아니네요 ㅡ_ㅡ;


◇ NLS_LANG 지정 방법
1. SESSION LEVEL
- 가장 우선 된다.
- select * from nls_session_parameters 를 통해서 확인 가능
- 변경 방법1.
-- 확인
SQL> select * from nls_session_parameters
where PARAMETER in ('NLS_LANGUAGE','NLS_TERRITORY','NLS_DATE_FORMAT','NLS_DATE_LANGUAGE','NLS_SORT');

PARAMETER VALUE
------------------------------ ----------------------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
SQL> SELECT SYS_CONTEXT('USERENV','LANGUAGE') "NLS SET" from dual;

NLS SET
--------------------------------------------------------------------------------
AMERICAN_AMERICA.US7ASCII

-- 변경
SQL> ALTER SESSION SET NLS_LANGUAGE='KOREAN';

Session altered.
-- 변경 확인
SQL> select * from nls_session_parameters
where PARAMETER in ('NLS_LANGUAGE','NLS_TERRITORY','NLS_DATE_FORMAT','NLS_DATE_LANGUAGE','NLS_SORT');

PARAMETER VALUE
------------------------------ ----------------------------------------
NLS_LANGUAGE KOREAN
NLS_TERRITORY AMERICA
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE KOREAN
NLS_SORT BINARY

SQL> SELECT SYS_CONTEXT('USERENV','LANGUAGE') "NLS SET" from dual;

NLS SET
---------------------------------------------------------------------------------------
KOREAN_AMERICA.US7ASCII

- 변경 방법2.
UNIX, WINDOWS 에서 NLS_LANG 값을 변경한다.
◇ UNIX - export NLS_LANG=American_America.US7ASCII 설정
◇ Windows - SET NLS_LANG=American_America.US7ASCII 설정
◇ NLS_LANG 잘못 지정시
NLS_LANG 을 잘못 지정시 sqlplus 실행시 오류 발생 [ I 가 하나 빠짐 ]
export NLS_LANG=American_America.US7ASCI
sqlplus scott/tiger
SQL*Plus: Release 8.1.7.0.0 - Production on Thu Jun 4 18:00:25 2009
(c) Copyright 2000 Oracle Corporation. All rights reserved.
ERROR:
ORA-12705: invalid or unknown NLS parameter value specified
-

2. INSTANCE LEVEL
- SELECT * FROM NLS_INSTANCE_PARAMETERS ; 를 통해서 확인 가능
- SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME LIKE '%nls%'; 를 통해서 확인 가능
[ NLS_INSTANCE_PARAMETER 에서 값을 가져온다. ]

3. DB LEVEL
- SELECT * FROM NLS_DATABASE_PARAMETERS ; 를 통해서 확인 가능
- SELECT NAME, VALUE$ FORM SYS.PROPS$ WHERE NAME LIKE '%NLS%' ; 를 통해서 확인 가능
[ NLS_DATABASE_PARAMETERS 에서 값을 가져온다. ]
- SELECT * FROM V$NLS_PARAMETERS 를 통해서 확인 가능
[ NLS_DATABASE_PARAMETERS 에서 값을 가져온다. ]
-

[테스트 1]
-- NLS_LANGUAGE 을 변경하고, DATE TYPE 의 데이타를 TO_CHAR 함수를 통해서 조회한다.
-- NLA_LANGUAGE, 엄밀히 말해서 NLS_DATE_LANGUAGE 값이 적용되는 것은
-- 요일 정보가 월요일, MON 으로 표기 되는 경우는 TO_CHAR,TO_DATE 사용 시에만 적용됩니다.
-- 현재 NLS_LANGUAGE 및 NLS_DATE_LANGUAGE 체크
select * from nls_session_parameters
where PARAMETER in ('NLS_LANGUAGE','NLS_TERRITORY','NLS_DATE_FORMAT','NLS_DATE_LANGUAGE','NLS_SORT');

-- NLS_LANGUAGE AMERICAN
-- NLS_TERRITORY AMERICA
-- NLS_DATE_FORMAT DD-MON-RR
-- NLS_DATE_LANGUAGE AMERICAN
-- NLS_SORT BINARY

-- Client NLS_LANG Setting 값 없이 Database 에 Login 하면,
-- DB Creation 시의 Default 값이, 즉 NLS_LANGUAGE[AMERICAN],NLS_TERRITORY[AMERICA] 값을 가지게 된다.
-- 또한 NLS_DATE_LANGUAGE[AMERICAN] 값은 특별히 지정하지 않는 경우 ,
-- NLS_LANGUAGE[AMERICAN] 값을 상속한다.


-- 데이타 조회(변경 없음)
SELECT HIREDATE FROM SCOTT.EMP WHERE EMPNO = 7369 ;
-- 1980/12/17 00:00:00
-- TO_CHAR 를 사용해서 데이타 조회, DEC !!
SELECT TO_CHAR(HIREDATE,'YYYYMONDD') FROM SCOTT.EMP WHERE EMPNO = 7369 ;
-- 1980DEC17

-- NLS_LANGUAGE 값을 KOREAN 으로 변경
ALTER SESSION SET NLS_LANGUAGE='KOREAN';
select * from nls_session_parameters
where PARAMETER in ('NLS_LANGUAGE','NLS_TERRITORY','NLS_DATE_FORMAT','NLS_DATE_LANGUAGE','NLS_SORT');

--NLS_LANGUAGE KOREAN
--NLS_TERRITORY AMERICA
--NLS_DATE_FORMAT DD-MON-RR
--NLS_DATE_LANGUAGE KOREAN
--NLS_SORT BINARY
===> NLS_LANGUAGE 값이 KOREAN 으로 변경되면, NLS_DATE_LANGUAGE 값도 KOREAN 으로 변경된다.

-- 데이타 조회(변경 없음)
SELECT HIREDATE FROM SCOTT.EMP WHERE EMPNO = 7369 ;
-- 1980/12/17 00:00:00
-- TO_CHAR 를 사용해서 데이타 조회, 12월
SELECT TO_CHAR(HIREDATE,'YYYYMONDD') FROM SCOTT.EMP WHERE EMPNO = 7369 ;
-- 198012월17

 

 

출처 : http://sjh7622.blog.me/138432296

 

 

 

'헬로마켓'과 함께하는 스마트한 중고 아이템 거래

https://www.hellomarket.com

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
49 오라클 락 해제, 조회 [1] 제리 2011-11-01 294411
48 오라클 날짜함수 [1] 제리 2011-10-20 221635
47 오라클 권한 추가 제거 제리 2011-10-20 197950
46 오라클 고급쿼리 - 계층적 쿼리 ( connect by ) update [4] 제리 2011-10-20 152222
» NLS_LANG 정리 제리 2011-10-20 139256
44 오라클 각종 정보 알아보기 [1] 제리 2011-10-18 126484
43 오라클의 CONNECT BY LEVEL 예제 제리 2011-10-20 102262
42 오라클 sys , system 암호(패스워드) 분실시 [2] 제리 2011-10-18 76758
41 «КиноНавигатор» – большой онлайн-кинотеатр с кино без подписки tacitverdict9 2023-05-03 7494
40 Хорошая подставная лестница – как присмотреть и грамотно применять zonkedkeeper34 2023-05-22 5822
39 New Starbucks Japan Pastel Christmas Collection Includes Bearista Hugging A Snow Globe & All Things Shimmery arijo 2023-04-30 2332
38 oyna-sweetbonanza ulyfado 2023-04-29 2183
37 Грейс Фултон update [3] savoydrudge33 2023-04-27 1606
36 Breed review: Korat Cat odisy 2023-05-02 1563
35 Popular Types of Cats anetabox 2023-04-28 1532
34 How Much Does A Siberian Cat Cost? Price Guide 2022 enimicy 2023-04-30 1525
33 oyna-sweetbonanza ihusuq 2023-04-28 1525
32 Norwegian Forest Cat: Breed Information, Pictures, and Fun Facts yrecy 2023-04-30 1520
31 How Big Do Savannah Cats Get? [Average By Filial (F) Generation] yfidymyk 2023-04-30 1517
30 Sokoke yjudu 2023-05-02 1514

Program Note 로그인 :)