My Oracle Support Banner

NLS_LANG에 대한 안내 (클라이언트-서버간 문자 데이터 변환 과정) (Doc ID 2165442.1)

Last updated on JULY 30, 2019

적용 대상:

Oracle Database - Personal Edition - 버전 8.0.3.0 과(와) 그 후속
Oracle Database - Standard Edition - 버전 8.0.3.0 과(와) 그 후속
Oracle Database - Enterprise Edition - 버전 8.0.3.0 과(와) 그 후속
Oracle Database Cloud Schema Service - 버전 N/A 과(와) 그 후속
Oracle Database Exadata Express Cloud Service - 버전 N/A 과(와) 그 후속
이 문서의 내용은 모든 플랫폼에 적용됩니다.

목적

이 문서는 NLS_LANG 설정시 어떤 일이 일어나며, 문자 데이터 변환이 어떻게 이루어지고, 올바른 설정이 무엇인지에 대한 기본적인 이해를 위해 작성되었습니다.

혹 문자 데이터 변환과 관련하여 어떤 문제가 있다고 생각되시거나 문제가 발견되면, 먼저 다음 문서에서 안내하는 것들을 확인해 봅니다.

<note 1628060.1> How to diagnose losing characters , getting "funny" output when inserting or selecting other than A-Z,a-z data ( = non English data like Chinese, Russian, Hebrew , insert any language here to the list that is not English) CHAR, VARCHAR2, LONG or CLOB .

NLS_CHARACTERSET을 변경하시고자 하는 경우, 다음 문서에서 안내하는 대로 진행해 봅니다. 

<Note 225912.1> Changing Or Choosing the Database Character Set ( NLS_CHARACTERSET ) 

범위

이 글은 영문 외 다른 문자 데이터를 처리할 수 있도록 시스템을 설정하시는 분들이나 설정에 따른 실제 동작 내용을 이해하시고자 하는 분들을 위해 작성되었습니다.

상세 내역

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


이 문서에서
목적
범위
상세 내역
 1.1 Globalization Support란 무엇인가요 ?
 1.2 NLS_LANG이란 무엇인가요?
 2.1 캐릭터셋(Characterset)과 코드 페이지(Code Page)란 무엇인지요 ?
 2.2 캐릭터셋들이 여러가지(서로) 다른 것들이 있는 이유가 무엇인지요?
 2.3 7-비트, 8-비트 캐릭터셋과 유니코드의 차이점은 무엇인지요 ?
 3.1 굳이 올바르게 NLS_LANG을 설정하고 있는지 확인해야 하는지요 ? (굳이 확인하지 않아도 잘 동작하는 것처럼 보입니다.)
 3.2 잘못된 NLS 설정에 대해 이해를 돕기위한 잘못된 설정의 예:
 3.3 실제 데이터베이스에 어떤 값으로 저장되었는지 확인을 하려면 어떻게 하는지요 ?
 4.1 올바른 설정을 위해서는 무엇을 해야 하는지요 ?
 4.1.1 클라이언트 별로 (적용된) 캐릭터셋 또는 코드페이지(마이크로소프트)를 확인합니다.
 4.1.2 오라클 (데이터베이스) 캐릭터셋에 맞는(적합한) NLS_LANG 값을 클라이언트에 설정합니다.
 4.1.3 데이터베이스를 생성할 때에는 반드시 모든(다양한) 클라이언트들이 사용하는 문자들을 지원하는 것으로 데이터베이스 캐릭터셋을 설정하여 생성합니다.
 4.1.4 (데이터베이스) 서버의 NLS_LANG도 그 서버의 OS (터미널 타입)에서 사용되는(적용되는) 것과 같은 값으로 설정합니다.
 4.2 클라이언트에 설정된 NLS_LANG은 어떻게 확인하는지요?
 4.2.1 유닉스의 경우:
 4.2.2 윈도우즈의 경우:
 4.3  문자 데이터 변환은 어디서 이루어지는 지요 ?
 4.4 NLS_LANG의 디폴트 값:
 5.1 제 윈도우즈에 설치된 sqlplusw.exe로는 10g 및 그 전의 버전들과 같이 확장 문자들을 모두 보여주지 못합니다.
 5.2 문자를 insert한 직후, 조회를 하면, 그 문자가 물음표 또는 꺼꾸로 된 물음표로 보입니다. (? 또는 ¿)
 5.3 sql*loader, import, export, 및 제가 사용하는 다른 툴의 경우는 어떠한 지요 ?
 5.4 데이터베이스 링크의 경우는 어떠한지요?
 5.5 웹 클라이언트(웹 브라우저) 와 웹 서버에서 오라클에 연결하는 경우는 어떻게 되는지요 ?
 5.6 윈도우즈의 경우 다수의 홈(디렉토리)로 구성될 수 있습니다. 이 경우는 어떤지요?
 5.7 윈도우즈 OS에서 유니코드 문자 입출력이 가능한 오라클 클라이언트가 있는지요?
 5.8 UTL_FILE 패기지를 이용하여 문자 데이터를 기록하고 읽으려고 하나 올바르지 않은 문자가 포함되는 경우.
 5.9 파일(텍스트) 내 문자 데이터를 DBMS_LOB으로 로딩하려고 하나 올바르게 이루어지지 않는 경우.
 5.10 파일 내 XML 데이터를 XMLtypes으로 로딩하려고 하나 로드되는 데이터에 적합하지 않은 문자가 포함된 경우
 5.11 ODBC와 NLS_LANG.
 5.12 다른 문제는 없으나 텍스트나 워드파일의 내용을 cut-and-paste 할 때는 잘 되지 않는 경우::
 5.13 listener.ora에 ( 'ENVS= NLS_LANG=....' )과 같이 설정하는 것은 무엇인가요 ?
참고

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.