개별 NLS 매개변수 정보
여러 개별 NLS 매개변수를 사용할 수 있습니다.
참조:
-
글로벌화 지원 환경 설정에 대한 자세한 내용은Oracle Database Globalization Support Guide를 참조하십시오.
로케일 및 NLS_LANG 매개변수 정보
로케일은 시스템 또는 응용 프로그램이 실행되는 언어 및 문화 환경입니다. Oracle Database 소프트웨어의 로케일을 지정하는 가장 간단한 방법은 NLS_LANG 매개변수를 설정하는 것입니다.
NLS_LANG 매개변수는 서버 세션(예: SQL 문 처리)과 클라이언트 응용 프로그램(예: Oracle Database 툴의 표시 형식 지정)에 대해 NLS_LANGUAGE 및 NLS_TERRITORY 매개변수의 기본값을 설정합니다. 또한 NLS_LANG 매개변수는 클라이언트 응용 프로그램이 입력되었거나 표시된 데이터에 사용하는 문자 집합을 설정합니다.
NLS_LANG의 기본값은 데이터베이스 설치 중에 설정됩니다. 세션에 대해 NLS_LANG 문을 사용하여 NLS_LANG에 의해 설정된 값을 비롯하여 NLS 매개변수의 값을 변경할 수 있습니다. 하지만 클라이언트 환경에서는 클라이언트만 NLS 설정을 변경할 수 있습니다.
참조:
-
NLS_LANG매개변수를 사용한 로케일 지정에 대한 자세한 내용은 Oracle Database Globalization Support Guide를 참조하십시오. -
Oracle Database에서 지원하는 언어, 지역, 문자 집합 및 기타 로케일 데이터에 대한 자세한 내용은 Oracle Database Globalization Support Guide를 확인하십시오.
NLS_LANGUAGE 매개변수 정보
이 파라미터는 데이터베이스의 기본 언어를 지정합니다.
지정: 데이터베이스의 기본 언어입니다. 기본 규칙은 다음과 같습니다.
-
서버 메시지용 언어
-
SQL 함수 TO_CHAR 및 TO_DATE에 지정되어 있는 일과 월의 이름과 약어용 언어
-
AM, PM, AD 및 BC와 동일한 기본 언어 항목의 기호
-
ORDER BY 절 지정 시 문자 데이터의 기본 정렬 순서
-
쓰기 방향
-
긍정 및 부정 응답 문자열(예: YES 및 NO)
허용 가능한 값: Oracle에서 지원하는 모든 언어 이름입니다. 목록을 보려면 Oracle Database Globalization Support Guide를(를) 참조하십시오.
기본값: "로케일 및 NLS_LANG 매개변수 정보"에 설명된 NLS_LANG으로 설정됩니다.
기본값 설정:
-
"About the NLS_DATE_LANGUAGE Parameter"에 설명된 NLS_DATE_LANGUAGE
-
NLS_SORT - "About the NLS_SORT Parameter"에 설명됨
예 7-1에서는 NLS_LANGUAGE를 ITALIAN 및 GERMAN으로 설정하면 서버 메시지와 월 약어에 어떤 영향을 주었는지 보여 줍니다.
SQL Developer에서 이 예제를 시도하려면 워크시트에 명령문과 질의를 입력합니다. 워크시트에 대한 자세한 내용은 "SQL Developer에서 질의 실행"을 참조하십시오. 여기에 표시된 결과는 SQL*Plus의 결과이므로 형식이 SQL Developer의 결과와 약간 다릅니다.
예 7-1 NLS_LANGUAGE는 서버 메시지 및 월 약어에 영향을 줍니다.
-
NLS_LANGUAGE의 현재 값을 살펴봅니다.
-
단계 1에서의 값이
ITALIAN이 아니면 이 값을 변경합니다.ALTER SESSION SET NLS_LANGUAGE=ITALIAN; -
존재하지 않는 테이블을 질의합니다.
SELECT * FROM nonexistent_table;결과:
SELECT * FROM nonexistent_table * ERROR at line 1: ORA-00942: tabella o vista inesistente -
다음 질의를 실행합니다.
SELECT LAST_NAME, HIRE_DATE FROM EMPLOYEES WHERE EMPLOYEE_ID IN (111, 112, 113);결과:
LAST_NAME HIRE_DATE ------------------------- --------- Sciarra 30-SET-97 Urman 07-MAR-98 Popp 07-DIC-99 3 rows selected. -
NLS_LANGUAGE 값을
GERMAN으로 변경합니다.ALTER SESSION SET NLS_LANGUAGE=GERMAN; -
단계 3의 질의를 반복합니다.
결과:
SELECT * FROM nonexistent_table * ERROR at line 1: ORA-00942: Tabelle oder View nicht vorhanden -
단계 4의 질의를 반복합니다.
결과:
LAST_NAME HIRE_DATE ------------------------- --------- Sciarra 30-SEP-97 Urman 07-MRZ-98 Popp 07-DEZ-99 3 rows selected. - NLS_LANGUAGE를 단계 1에서 설정한 값으로 설정합니다.
참조:
-
Oracle Database Globalization Support Guide - NLS_LANGUAGE 매개변수에 대한 자세한 내용
-
"언어 지원 정보"
NLS_TERRITORY 매개변수 정보
이 매개변수는 날짜 형식, 시간 기록 형식, 십진수 및 그룹 구분 기호, 로컬 통화 기호, ISO 통화 기호 및 이중 통화 기호에 대한 기본 규칙을 지정합니다.
특정 사항: 기본 규칙은 다음과 같습니다.
-
날짜 형식
-
시간기록 형식
-
십진수 문자 및 그룹 구분 기호
-
지역 통화 기호
-
ISO 통화 기호
-
이중 통화 기호
허용 가능한 값: Oracle에서 지원하는 모든 지역 이름입니다. 목록을 보려면 Oracle Database Globalization Support Guide를(를) 참조하십시오.
기본값: "로케일 및 NLS_LANG 매개변수 정보"에 설명된 NLS_LANG으로 설정됩니다.
기본값 설정:
-
"NLS_DATE_FORMAT 매개변수 정보"에 설명된 NLS_DATE_FORMAT입니다.
-
"About NLS_TIMESTAMP_FORMAT and NLS_TIMESTAMP_TZ_FORMAT Parameters"에 설명된 NLS_TIMESTAMP_FORMAT 및 NLS_TIMESTAMP_TZ_FORMAT 매개변수 정보)
-
"NLS_NUMERIC_CHARACTERS 매개변수 정보"에 설명된
NLS_NUMERIC_CHARACTERS -
NLS_CURRENCY는 "NLS_CURRENCY 매개변수 정보"에 설명되어 있습니다.
-
NLS_ISO_CURRENCY - "NLS_ISO_CURRENCY 매개변수 정보"에 설명됨
-
"About the NLS_DUAL_CURRENCY Parameter"에 설명된 NLS_DUAL_CURRENCY
예 7-2에서는 NLS_TERRITORY를 JAPAN 및 AMERICA로 설정하면 통화 기호에 어떠한 영향을 주는지를 보여 줍니다.
SQL Developer에서 이 예제를 시도하려면 워크시트에 명령문과 질의를 입력합니다. 워크시트에 대한 자세한 내용은 "SQL Developer에서 질의 실행"을 참조하십시오. 여기에 표시된 결과는 SQL*Plus의 결과이므로 형식이 SQL Developer의 결과와 약간 다릅니다.
7-2 NLS_TERRITORY가 통화 기호에 영향을 주는 예
-
NLS_TERRITORY의 현재 값을 기록합니다.
-
단계 1에서의 값이
JAPAN이 아니면 이 값을 변경합니다.ALTER SESSION SET NLS_TERRITORY=JAPAN; -
다음 질의를 실행합니다.
SELECT TO_CHAR(SALARY,'L99G999D99') SALARY FROM EMPLOYEES WHERE EMPLOYEE_ID IN (100, 101, 102);결과:
SALARY -------------------- ©24,000.00 ©17,000.00 ©17,000.00 3 rows selected. -
NLS_TERRITORY의 값을AMERICA로 변경합니다.ALTER SESSION SET NLS_TERRITORY=AMERICA; -
단계 3의 질의를 반복합니다.
결과:
SALARY -------------------- $24,000.00 $17,000.00 $17,000.00 3 rows selected. NLS_TERRITORY를 단계 1에서 설정한 값으로 설정합니다.
참조:
-
NLS_TERRITORY 매개변수에 대한 자세한 내용은 Oracle Database Globalization Support Guide를 참조하십시오
-
"지역 지원 정보"
NLS_DATE_FORMAT 매개변수 정보
이 매개변수는 TO_CHAR 및 TO_DATE 함수와 함께 사용할 기본 날짜 형식을 지정합니다.
특정사항: TO_CHAR 및 TO_DATE 함수에 사용할 기본 날짜 형식("질의에 변환 함수 사용"에 설명됨).
허용 가능한 값: 적합한 모든 날짜/시간 형식 모델입니다. 예:
NLS_DATE_FORMAT='MM/DD/YYYY'
날짜/시간 형식 모델에 대한 자세한 내용은 Oracle Database SQL Language Reference를 참조하세요.
기본값: "NLS_TERRITORY 매개변수 정보"에 설명된 NLS_TERRITORY에 의해 설정됩니다.
기본 날짜 형식이 지정된 지역에 사용되는 규칙에 맞지 않을 수 있습니다. 지역화된 형식으로 날짜를 가져오려면 'DS'(간단한 날짜) 및 'DL'(자세한 날짜) 형식을 사용할 수 있습니다. 예 7-3에서는 NLS_TERRITORY를 AMERICA 및 FRANCE로 설정하면 기본 날짜, 짧은 날짜 및 긴 날짜 형식에 어떠한 영향을 주는지 보여 줍니다. 예 7-4는 NLS_TERRITORY의 값을 변경하여 NLS_DATE_FORMAT에 의해 설정된 기본값을 무효화합니다.
SQL Developer의 예제를 보려면 Worksheet에 명령문 및 query를 입력합니다. 워크시트에 대한 자세한 내용은 "SQL Developer에서 질의 실행"을 참조하십시오. 여기에 표시된 결과는 SQL*Plus의 결과이므로 형식이 SQL Developer의 결과와 약간 다릅니다.
예제 7-3 NLS_TERRITORY가 날짜 형식에 영향을 줌
-
NLS_TERRITORY의 현재 값을 기록합니다.
-
단계 1에서의 값이
AMERICA이 아니면 이 값을 변경합니다.ALTER SESSION SET NLS_TERRITORY=AMERICA; -
다음 질의를 실행합니다.
SELECT hire_date "Default", TO_CHAR(hire_date,'DS') "Short", TO_CHAR(hire_date,'DL') "Long" FROM employees WHERE employee_id IN (111, 112, 113);결과:
Default Short Long --------- ---------- ----------------------------- 30-SEP-05 9/30/2005 Friday, September 30, 2005 07-MAR-98 3/7/2006 Tuesday, March 07, 2006 07-DEC-99 12/7/2007 Friday, December 07, 2007 3 rows selected. -
NLS_TERRITORY의 값을
FRANCE로 변경합니다.ALTER SESSION SET NLS_TERRITORY=FRANCE; -
단계 3의 질의를 반복합니다.
결과:
Default Short Long -------- ---------- --------------------------- 30/09/05 30/09/2005 friday 30 september 2005 07/03/06 07/03/2006 tuesday 7 march 2006 07/12/07 07/12/2007 friday 7 december 2007 3 rows selected.프랑스어로 일 및 월의 이름을 가져오려면 질의를 실행하기 전에 NLS_LANGUAGE 또는 NLS_DATE_LANGUAGE를
FRENCH로 설정해야 합니다. - NLS_TERRITORY를 단계 1에서 찾은 값으로 설정합니다.
예제 7-4 NLS_DATE_FORMAT이 NLS_TERRITORY를 재정의함
-
NLS_TERRITORY 및 NLS_DATE_FORMAT의 현재 값을 기록합니다.
-
단계 1에서 NLS_TERRITORY의 값이
AMERICA가 아니면 다음 값으로 변경합니다.ALTER SESSION SET NLS_TERRITORY=AMERICA; -
단계 1에서 NLS_DATE_FORMAT의 값이
'Day Month ddth'가 아니면 다음 값으로 변경합니다.ALTER SESSION SET NLS_DATE_FORMAT='Day Month ddth'; -
다음 질의를 실행합니다(이전 예제의 단계 3).
SELECT hire_date "Default", TO_CHAR(hire_date,'DS') "Short", TO_CHAR(hire_date,'DL') "Long" FROM employees WHERE employee_id IN (111, 112, 113);결과:
Default Short Long ------------------------ ---------- ----------------------------- Friday September 30th 9/30/2005 Tuesday, September 30, 2005 Tuesday March 07th 3/7/2006 Saturday, March 07, 2006 Friday December 07th 12/7/2007 Tuesday, December 07, 2007 3 rows selected. - NLS_TERRITORY 및 NLS_DATE_FORMAT을 단계 1에서 입력한 값으로 설정합니다.
참조:
-
Oracle Database Globalization Support Guide - NLS_DATE_FORMAT 매개변수에 대한 자세한 내용
-
TO_CHAR 함수에 대한 자세한 내용은 Oracle Database SQL Language Reference를 참조하십시오
-
TO_DATE 함수에 대한 자세한 내용은 Oracle Database SQL Language Reference를 참조하십시오
NLS_DATE_LANGUAGE 매개변수 정보
이 파라미터는 일과 월의 이름 및 약어(SQL 함수 TO_CHAR 및 TO_DATE), 기본 날짜 형식(NLS_DATE_FORMAT으로 설정) 및 AM, PM, AD 및 BC에 해당하는 기본 언어의 기호에 대한 언어를 지정합니다.
특정 사항: 다음에 의해 생성되는 일 및 월의 이름과 약어용 언어입니다.
-
SQL 함수 TO_CHAR 및 TO_DATE("질의에 변환 함수 사용에 설명됨)
-
기본 날짜 형식("NLS_DATE_FORMAT 매개변수 정보"에 설명된 NLS_DATE_FORMAT에 의해 설정됨")
-
AM, PM, AD 및 BC와 동일한 기본 언어 항목의 기호
허용 가능한 값: Oracle에서 지원하는 모든 언어 이름입니다. 목록을 보려면 Oracle Database Globalization Support Guide를(를) 참조하십시오.
기본값: "NLS_LANGUAGE 매개변수 정보"에 설명된 NLS_LANGUAGE에 의해 설정됩니다.
예 7-5는 NLS_DATE_LANGUAGE를 FRENCH 및 SWEDISH로 설정하면 표시된 시스템 날짜에 어떠한 영향을 주는지 보여 줍니다.
SQL Developer에서 이 예제를 시도하려면 워크시트에 명령문과 질의를 입력합니다. 워크시트에 대한 자세한 내용은 "SQL Developer에서 질의 실행"을 참조하십시오. 여기에 표시된 결과는 SQL*Plus의 결과이므로 형식이 SQL Developer의 결과와 약간 다릅니다.
예제 7-5 NLS_DATE_LANGUAGE는 표시된 SYSDATE에 영향을 줌
-
NLS_DATE_LANGUAGE의 현재 값을 살펴봅니다.
-
단계 1에서 NLS_DATE_LANGUAGE의 값이
FRENCH가 아니면 다음 값으로 변경합니다.ALTER SESSION SET NLS_DATE_LANGUAGE=FRENCH; -
다음 질의를 실행합니다.
SELECT TO_CHAR(SYSDATE, 'Day:Dd Month yyyy') "System Date" FROM DUAL;결과:
System Date -------------------------- Vendredi:28 December 2012 -
NLS_DATE_LANGUAGE 값을
SWEDISH으로 변경합니다.ALTER SESSION SET NLS_DATE_LANGUAGE=SWEDISH; -
단계 3의 질의를 반복합니다.
결과:
System Date ------------------------- Fredag :28 December 2012 NLS_DATE_LANGUAGE를 단계 1에서 설정한 값으로 설정합니다.
참조:
-
NLS_DATE_LANGUAGE 매개변수에 대한 자세한 내용은 Oracle Database Globalization Support Guide를 참조하십시오
-
TO_CHAR 함수에 대한 자세한 내용은 Oracle Database SQL Language Reference를 참조하십시오
-
y 함수에 대한 자세한 내용은 Oracle Database SQL Language Reference를 참조하십시오
NLS_TIMESTAMP_FORMAT 및 NLS_TIMESTAMP_TZ_FORMAT 매개변수 정보
이 매개변수는 TIMESTAMP 오디오 테이프 및 TIMESTAMP WITH LOCAL TIME ZONEaudiotapeTIMESTAMP WITH LOCAL TIME ZONEaudiotape에 대한 기본 날짜 형식을 지정합니다.
지정: 다음의 기본 날짜 형식:
-
TIMESTAMP 오디오 테이프
-
로컬 시간 ZONEaudiotape를 가진 TIMESTAMP
허용 가능한 값: 적합한 모든 날짜/시간 형식 모델입니다. 예:
NLS_TIMESTAMP_FORMAT='YYYY-MM-DD HH:MI:SS.FF'
NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH:MI:SS.FF TZH:TZM'
날짜/시간 형식 모델에 대한 자세한 내용은 Oracle Database SQL Language Reference를 참조하세요.
기본값: "NLS_TERRITORY 매개변수 정보"에 설명된 NLS_TERRITORY에 의해 설정됩니다.
참조:
-
NLS_TIMESTAMP_FORMAT 매개변수에 대한 자세한 내용은 Oracle Database Globalization Support Guide를 참조하십시오
-
NLS_TIMESTAMP_TZ_FORMAT 매개변수에 대한 자세한 내용은 Oracle Database Globalization Support Guide를 참조하십시오
-
날짜/시간 데이터 유형 및 시간대 지원에 대한 자세한 내용은 Oracle Database Globalization Support Guide를 참조하십시오
-
TIMESTAMP 오디오테이프에 대한 자세한 내용은 Oracle Database SQL Language Reference를 참조하십시오
-
Oracle Database SQL Language Reference - TIMESTAMP WITH LOCAL TIME ZONE 데이터 유형에 대한 자세한 내용
NLS_CALENDAR 매개변수 정보
이 매개변수는 데이터베이스에 대한 달력 시스템을 지정합니다.
지정: 데이터베이스의 달력 시스템입니다.
허용 가능한 값: Oracle에서 지원하는 모든 달력 시스템입니다. 목록을 보려면 Oracle Database Globalization Support Guide를(를) 참조하십시오.
기본값: Gregorian
예 7-6에서는 NLS_CALENDAR를 'English Hijrah' 및 Gregorian로 설정하면 표시된 시스템 날짜에 어떠한 영향을 주는지 보여 줍니다.
SQL Developer에서 이 예제를 시도하려면 워크시트에 명령문과 질의를 입력합니다. 워크시트에 대한 자세한 내용은 "SQL Developer에서 질의 실행"을 참조하십시오. 여기에 표시된 결과는 SQL*Plus의 결과이므로 형식이 SQL Developer의 결과와 약간 다릅니다.
예제 7-6 NLS_CALENDAR가 표시된 SYSDATE에 영향을 줌
-
NLS_CALENDAR의 현재 값을 기록해 둡니다.
-
단계 1에서 NLS_CALENDAR의 값이
'English Hijrah'가 아니면 다음 값으로 변경합니다.ALTER SESSION SET NLS_CALENDAR='English Hijrah'; -
다음 질의를 실행합니다.
SELECT SYSDATE FROM DUAL;결과:
SYSDATE ------------------------- 17 Safar 1434 -
NLS_CALENDAR의 값을
'Gregorian'로 변경합니다.ALTER SESSION SET NLS_CALENDAR='Gregorian'; -
다음 질의를 실행합니다.
SELECT SYSDATE FROM DUAL;결과:
SYSDATE --------- 31-DEC-12 - NLS_CALENDAR를 단계 1에서 찾은 값으로 설정합니다.
참조:
-
NLS_CALENDAR매개변수에 대한 자세한 내용은 Oracle Database Globalization Support Guide를 참조하십시오 -
"일정 형식 정보"
NLS_NUMERIC_CHARACTERS 매개변수 정보
이 매개변수는 소수점 문자(숫자의 정수 부분과 소수 부분을 분리함) 및 그룹 구분 기호(예: 정수 그룹을 분리하여 천단위와 만단위 표시)를 지정합니다. 그룹 구분 기호는 숫자 형식 요소 G가 반환하는 문자입니다.
지정 사항: 소수점 문자(숫자의 정수 부분 및 소수 부분을 분리) 및 그룹 구분자(예: 정수 그룹을 분리하여 천 단위 및 만 단위를 표시)입니다. 그룹 구분 기호는 숫자 형식 요소 G가 반환하는 문자입니다.
허용 가능한 값: 다음을 제외한 두 개의 다른 단일 바이트 문자입니다.
-
숫자 문자
-
플러스(+)
-
빼기(-)
-
보다 작음(<)
-
보다 큼(>)
기본값: "NLS_TERRITORY 매개변수 정보"에 설명된 NLS_TERRITORY에 의해 설정됩니다.
SQL 문에서 다음 중 하나로 숫자를 나타낼 수 있습니다.
-
숫자 리터럴
숫자 리터럴은 따옴표로 묶지 않으며 소수점 문자로 항상 마침표(.)를 사용하고 그룹 구분 기호를 포함하지 않습니다.
-
텍스트 리터럴
텍스트 리터럴은 작은 따옴표로 묶습니다. 필요한 경우 현재 NLS 설정에 따라 암시적 또는 명시적 숫자로 변환됩니다.
예제 7-7에서는 두 개의 다른 NLS_NUMERIC_CHARACTERS 설정이 표시된 동일한 질의 결과에 어떤 영향을 주는지 보여 줍니다.
SQL Developer에서 이 예제를 시도하려면 워크시트에 명령문과 질의를 입력합니다. 워크시트에 대한 자세한 내용은 "SQL Developer에서 질의 실행"을 참조하십시오. 여기에 표시된 결과는 SQL*Plus의 결과이므로 형식이 SQL Developer의 결과와 약간 다릅니다.
예제 7-7 NLS_NUMERIC_CHARACTERS는 소수점 문자 및 그룹 구분 기호에 영향을 줍니다.
-
NLS_NUMERIC_CHARACTERS의 현재 값을 기록해 둡니다.
-
단계 1에서 NLS_NUMERIC_CHARACTERS의 값이
",."(소수점 문자는 쉼표, 그룹 구분 기호가 마침표)가 아니면 이 값을 변경합니다.ALTER SESSION SET NLS_NUMERIC_CHARACTERS=",."; -
다음 질의를 실행합니다.
SELECT TO_CHAR(4000, '9G999D99') "Number" FROM DUAL;결과:
Number --------- 4.000,00 -
NLS_NUMERIC_CHARACTERS 값을
",."(소수점 문자는 마침표, 그룹 구분 기호는 콤마)로 변경합니다.ALTER SESSION SET NLS_NUMERIC_CHARACTERS=".,"; -
다음 질의를 실행합니다.
SELECT TO_CHAR(4000, '9G999D99') "Number" FROM DUAL;결과:
Number --------- 4,000.00 - NLS_NUMERIC_CHARACTERS를 단계 1에서 설정한 값으로 설정합니다.
참조:
NLS_CURRENCY 매개변수 정보
이 매개변수는 로컬 통화 기호(숫자 형식 요소 L이 반환하는 문자열)를 지정합니다.
특정 사항: 로컬 통화 기호(숫자 형식 요소 L이 반환하는 문자열).
허용 가능한 값: 적합한 통화 기호 문자열입니다.
기본값: "NLS_TERRITORY 매개변수 정보"에 설명된 NLS_TERRITORY에 의해 설정됩니다.
예 7-8은 NLS_TERRITORY의 값을 변경하여 NLS_CURRENCY에 의해 설정된 기본값을 무효화합니다. SQL Developer에서 이 예제를 시도하려면 워크시트에 명령문과 질의를 입력합니다. 워크시트에 대한 자세한 내용은 "SQL Developer에서 질의 실행"을 참조하십시오. 여기에 표시된 결과는 SQL*Plus의 결과이므로 형식이 SQL Developer의 결과와 약간 다릅니다.
예제 7-8 NLS_CURRENCY는 NLS_TERRITORY를 재정의함
-
NLS_TERRITORY 및 NLS_CURRENCY의 현재 값을 기록해 둡니다.
-
단계 1에서 NLS_TERRITORY의 값이
AMERICA가 아니면 다음 값으로 변경합니다.ALTER SESSION SET NLS_TERRITORY=AMERICA; -
다음 질의를 실행합니다.
SELECT TO_CHAR(salary, 'L099G999D99') "Salary" FROM EMPLOYEES WHERE salary > 13000;결과:
Salary --------------------- $024,000.00 $017,000.00 $017,000.00 $014,000.00 $013,500.00 -
NLS_CURRENCY의 값을
'©'로 변경합니다.ALTER SESSION SET NLS_CURRENCY='©'; -
다음 질의를 실행합니다.
SELECT TO_CHAR(salary, 'L099G999D99') "Salary" FROM EMPLOYEES WHERE salary > 13000;결과:
Salary --------------------- ©024,000.00 ©017,000.00 ©017,000.00 ©014,000.00 ©013,500.00 - NLS_TERRITORY 및 NLS_CURRENCY를 단계 1에서 설정한 값으로 설정합니다.
참조:
-
Oracle Database Globalization Support Guide - NLS_CURRENCY 매개변수에 대한 자세한 내용
NLS_ISO_CURRENCY 매개변수 정보
이 매개변수는 ISO 통화 기호(숫자 형식 요소 C에서 반환된 문자열)를 지정합니다.
특정 사항: ISO 통화 기호(숫자 형식 요소 C가 반환하는 문자열).
허용 가능한 값: 적합한 통화 기호 문자열입니다.
기본값: "NLS_TERRITORY 매개변수 정보"에 설명된 NLS_TERRITORY에 의해 설정됩니다.
로컬 통화 기호는 모호할 수 있지만 ISO 통화 기호는 고유합니다. 예 7-9에서는 지역 AUSTRALIA 및 AMERICA의 로컬 통화 기호는 동일하지만 ISO 통화 기호는 다름를 보여 줍니다.
SQL Developer에서 이 예제를 시도하려면 워크시트에 명령문과 질의를 입력합니다. 워크시트에 대한 자세한 내용은 "SQL Developer에서 질의 실행"을 참조하십시오. 여기에 표시된 결과는 SQL*Plus의 결과이므로 형식이 SQL Developer의 결과와 약간 다릅니다.
예 7-9 NLS_ISO_CURRENCY
-
NLS_TERRITORY 및 NLS_ISO_CURRENCY의 현재 값을 기록해 둡니다.
-
단계 1에서 NLS_TERRITORY의 값이
AUSTRALIA가 아니면 이 값을 변경합니다.ALTER SESSION SET NLS_TERRITORY=AUSTRALIA; -
다음 질의를 실행합니다.
SELECT TO_CHAR(salary, 'L099G999D99') "Local", TO_CHAR(salary, 'C099G999D99') "ISO" FROM EMPLOYEES WHERE salary > 15000;결과:
Local ISO --------------------- ------------------ $024,000.00 AUD024,000.00 $017,000.00 AUD017,000.00 $017,000.00 AUD017,000.00 -
NLS_TERRITORY의 값을
AMERICA로 변경합니다.ALTER SESSION SET NLS_TERRITORY=AMERICA; -
다음 질의를 실행합니다.
SELECT TO_CHAR(salary, 'L099G999D99') "Local", TO_CHAR(salary, 'C099G999D99') "ISO" FROM EMPLOYEES WHERE salary > 15000;결과:
Local ISO --------------------- ------------------ $024,000.00 USD024,000.00 $017,000.00 USD017,000.00 $017,000.00 USD017,000.00 - NLS_TERRITORY 및 NLS_ISO_CURRENCY를 단계 1에서 설정한 값으로 설정합니다.
참조:
NLS_DUAL_CURRENCY 매개변수 정보
이 매개변수는 이중 통화 기호를 지정합니다(유로 전환 기간 동안 유로화 통화 기호를 지원하기 위해 도입되었습니다).
특정사항: 이중 통화 기호입니다(유로 전환 기간 동안 유로화 통화 기호를 지원하기 위해 도입되었습니다).
허용 가능한 값: 적합한 통화 기호 문자열입니다.
기본값: "NLS_TERRITORY 매개변수 정보"에 설명된 NLS_TERRITORY에 의해 설정됩니다.
참조:
NLS_SORT 매개변수 정보
이 파라미터는 ORDER BY 절이 있는 query의 언어 정렬 순서(조합 순서)를 지정합니다.
지정: ORDER BY 절이 있는 질의의 언어 정렬 순서(조합 순서)입니다.
허용 가능한 값:
-
BINARY정렬 순서는 데이터 유형에 따라 데이터베이스 문자 집합 또는 국가별 문자 집합의 이진 순서를 기준으로 합니다.
-
오라클에서 지원하는 모든 언어 정렬 이름
정렬 순서는 지정된 언어 정렬 이름의 순서를 기준으로 합니다. 일반적으로 언어 정렬 이름은 언어 이름과 같지만 항상 그렇지는 않습니다. 지원되는 언어 정렬 이름 목록은 Oracle Database Globalization Support Guide를 참조하십시오.
기본값: "NLS_LANGUAGE 매개변수 정보"에 설명된 NLS_LANGUAGE에 의해 설정됩니다.
예 7-10에서는 두 개의 다른 NLS_SORT 설정이 동일한 질의의 표시되는 결과에 미치는 영향을 보여 줍니다. 설정은 BINARY와 스페인어(전통)(SPANISH_M)입니다. 스페인어(전통)에서는 ch, ll 및 ñ을 각각 c, l 및 n 다음에 오는 문자로 처리합니다.
SQL Developer에서 이 예제를 시도하려면 워크시트에 명령문과 질의를 입력합니다. 워크시트에 대한 자세한 내용은 "SQL Developer에서 질의 실행"을 참조하십시오. 여기에 표시된 결과는 SQL*Plus의 결과이므로 형식이 SQL Developer의 결과와 약간 다릅니다.
대소문자와 악센트 구분 없이 정렬
Oracle Database 내의 작업에서는 문자의 대소문자와 악센트를 구분합니다. 대소문자 구분 없이 정렬하려면 NLS_SORT 매개변수 값에 _CI를 추가합니다(예: BINARY_CI 또는 GERMAN_CI). 대소문자와 악센트를 모두 구분 없이 정렬하려면 NLS_SORT 매개변수 값에 _AI를 추가합니다(예: BINARY_AI 또는 FRENCH_M_AI).
예제 7-10 NLS_SORT가 언어 정렬 순서에 미치는 영향
-
스페인어 단어의 테이블을 생성합니다.
CREATE TABLE temp (name VARCHAR2(15)); -
테이블을 몇 가지 스페인어 단어로 채웁니다.
INSERT INTO temp (name) VALUES ('laguna'); INSERT INTO temp (name) VALUES ('llama'); INSERT INTO temp (name) VALUES ('loco'); -
NLS_SORT의 현재 값을 기록해 둡니다.
-
단계 3에서 NLS_SORT 값이
BINARY가 아니면 다음 값을 다음과 같이 변경합니다.ALTER SESSION SET NLS_SORT=BINARY; -
다음 질의를 실행합니다.
SELECT * FROM temp ORDER BY name;결과:
NAME --------------- laguna llama loco -
NLS_SORT 값을
SPANISH_M(전통 스페인어))으로 변경합니다.ALTER SESSION SET NLS_SORT=SPANISH_M; -
단계 5의 질의를 반복합니다.
결과:
NAME --------------- laguna loco llama -
테이블을 삭제합니다.
DROP TABLE temp; - NLS_SORT를 단계 3에서 설정한 값으로 설정합니다.
참조:
-
NLS_SORT매개변수에 대한 자세한 내용은 Oracle Database Globalization Support Guide를 참조하십시오 -
대소문자 및 악센트 구분 없이 정렬에 대한 자세한 내용은 Oracle Database Globalization Support Guide를 확인하십시오.
NLS_COMP 매개변수 정보
이 파라미터는 SQL 작업의 문자 비교 동작을 지정합니다.
특정 사항: SQL 작업의 문자 비교 동작입니다.
허용 가능한 값:
-
BINARYSQL에서 문자의 이진 코드를 비교합니다. 이진 코드가 높은 문자가 다른 문자보다 큽니다.
-
LINGUISTICSQL에서 "NLS_SORT 매개변수 정보"에 설명된
NLS_SORT매개변수 값을 기준으로 언어 비교를 수행합니다. -
ANSI이 값은 역호환성을 위해 제공됩니다.
기본값: BINARY
예 7-11에서는 질의 결과가 NLS_COMP 설정에 따라 달라질 수 있음을 보여 줍니다.
SQL Developer에서 이 예제를 시도하려면 워크시트에 명령문과 질의를 입력합니다. 워크시트에 대한 자세한 내용은 "SQL Developer에서 질의 실행"을 참조하십시오. 여기에 표시된 결과는 SQL*Plus의 결과이므로 형식이 SQL Developer의 결과와 약간 다릅니다.
예제 7-11 NLS_COMP가 SQL 문자 비교에 미치는 영향
-
NLS_SORT 및 NLS_COMP의 현재 값을 기록해 둡니다.
-
단계 1에서 NLS_SORT 및 NLS_COMP 값이 각각
SPANISH_M(스페인어(전통)) 및BINARY가 아닌 경우 다음과 같이 변경합니다.ALTER SESSION SET NLS_SORT=SPANISH_M NLS_COMP=BINARY; -
다음 질의를 실행합니다.
SELECT LAST_NAME FROM EMPLOYEES WHERE LAST_NAME LIKE 'C%';결과:
LAST_NAME ------------------------- Cabrio Cambrault Cambrault Chen Chung Colmenares 6 rows selected -
NLS_COMP의 값을
LINGUISTIC로 변경합니다.ALTER SESSION SET NLS_COMP=LINGUISTIC; -
단계 3의 질의를 반복합니다.
결과:
LAST_NAME ------------------------- Cabrio Cambrault Cambrault Colmenares 4 rows selected이번에는 스페인어(전통)에서 Chen 및 Chung이
ch를c다음에오는 단일 문자로 처리하므로 Chen 및 Chung이 반환되지 않습니다. - NLS_SORT 및 NLS_COMP를 단계 1의 값으로 설정합니다.
참조:
-
NLS_COMP 매개변수에 대한 자세한 내용은 Oracle Database Globalization Support Guide를 참조하십시오
NLS_LENGTH_SEMANTICS 매개변수 정보
이 파라미터는 CHAR, VARCHAR2 및 LONG 문자 데이터 유형의 열에 대한 길 의미 즉, 이러한 열이 바이트로 지정되는지 문자로 지정되는지를 나타냅니다. 매개변수를 설정한 후 선언한 열에만 적용됩니다.
특정 사항: CHAR, VARCHAR2 및 LONG 문자 데이터 유형의 열에 대한 길이 의미 즉, 이러한 열이 바이트로 지정되는지 문자로 지정되는지 지정합니다. 매개변수를 설정한 후 선언한 열에만 적용됩니다.
허용 가능한 값:
-
BYTE새 CHAR, VARCHAR2 및 LONG 열은 바이트로 지정됩니다.
-
CHAR새 CHAR, VARCHAR2 및 LONG 열이 문자로 지정됩니다.
기본값: BYTE
SQL Developer에서 이 예제를 시도하려면 워크시트에 명령문과 질의를 입력합니다. 워크시트에 대한 자세한 내용은 "SQL Developer에서 질의 실행"을 참조하십시오. 여기에 표시된 결과는 SQL*Plus의 결과이므로 형식이 SQL Developer의 결과와 약간 다릅니다.
예제 7-12 NLS_LENGTH_SEMANTICS가 VARCHAR2 열의 저장에 미치는 영향
-
NLS_LENGTH_SEMANTICS의 현재 값을 기록해 둡니다.
-
단계 1에서 NLS_LENGTH_SEMANTICS 값이
BYTE가 아닌 경우 다음과 같이 변경합니다.ALTER SESSION SET NLS_LENGTH_SEMANTICS=BYTE; -
VARCHAR2 열을 가진 테이블을 생성합니다.
CREATE TABLE SEMANTICS_BYTE(SOME_DATA VARCHAR2(20)); -
접속 탭을 누릅니다.
-
Connections(연결) 프레임에서 hr_conn을 확장합니다.
-
스키마 객체 유형 목록에서 테이블을 확장합니다.
-
테이블 목록에서 SEMANTICS_BYTE를 선택합니다.
[접속] 프레임 오른쪽에 [열] 창에 [열 이름] SOME_DATA, [데이터 유형]이
VARCHAR2(20 BYTE)로 표시됩니다. -
NLS_LENGTH_SEMANTICS의 값을
CHAR로 변경합니다.ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR; -
VARCHAR2 열을 포함하는 다른 테이블을 만듭니다.
CREATE TABLE SEMANTICS_CHAR(SOME_DATA VARCHAR2(20)); -
연결 프레임에서 새로 고침 아이콘을 누릅니다.
이제 테이블 목록에 SEMANTICS_CHAR이 포함됩니다.
-
SEMANTICS_CHAR을 선택합니다.
[열] 창에 [열 이름] SOME_DATA, [데이터 유형]에
VARCHAR2(20 CHAR)이 표시됩니다. -
SEMANTICS_BYTE를 다시 선택합니다.
[열] 창의 [열 이름]에 SOME_DATA, [데이터 유형]이 여전히
VARCHAR2(20 BYTE)로 표시됩니다. - NLS_LENGTH_SEMANTICS 값을 단계 1의 값으로 설정합니다.
참조:
-
Oracle Database Globalization Support Guide - NLS_LENGTH_SEMANTICS 매개변수에 대한 자세한 내용
-
"길이 의미 정보"