개별 NLS 매개변수 정보

여러 개별 NLS 매개변수를 사용할 수 있습니다.

참조:

로케일 및 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_LANGUAGE 매개변수 정보

이 파라미터는 데이터베이스의 기본 언어를 지정합니다.

지정: 데이터베이스의 기본 언어입니다. 기본 규칙은 다음과 같습니다.

허용 가능한 값: Oracle에서 지원하는 모든 언어 이름입니다. 목록을 보려면 Oracle Database Globalization Support Guide를(를) 참조하십시오.

기본값: "로케일 및 NLS_LANG 매개변수 정보"에 설명된 NLS_LANG으로 설정됩니다.

기본값 설정:

예 7-1에서는 NLS_LANGUAGE를 ITALIANGERMAN으로 설정하면 서버 메시지와 월 약어에 어떤 영향을 주었는지 보여 줍니다.

SQL Developer에서 이 예제를 시도하려면 워크시트에 명령문과 질의를 입력합니다. 워크시트에 대한 자세한 내용은 "SQL Developer에서 질의 실행"을 참조하십시오. 여기에 표시된 결과는 SQL*Plus의 결과이므로 형식이 SQL Developer의 결과와 약간 다릅니다.

예 7-1 NLS_LANGUAGE는 서버 메시지 및 월 약어에 영향을 줍니다.

  1. NLS_LANGUAGE의 현재 값을 살펴봅니다.

  2. 단계 1에서의 값이 ITALIAN이 아니면 이 값을 변경합니다.

     ALTER SESSION SET NLS_LANGUAGE=ITALIAN;
    
  3. 존재하지 않는 테이블을 질의합니다.

     SELECT * FROM nonexistent_table;
    

    결과:

     SELECT * FROM nonexistent_table
                 *
     ERROR at line 1:
     ORA-00942: tabella o vista inesistente
    
  4. 다음 질의를 실행합니다.

     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.
    
  5. NLS_LANGUAGE 값을 GERMAN으로 변경합니다.

     ALTER SESSION SET NLS_LANGUAGE=GERMAN;
    
  6. 단계 3의 질의를 반복합니다.

    결과:

     SELECT * FROM nonexistent_table
                 *
     ERROR at line 1:
     ORA-00942: Tabelle oder View nicht vorhanden
    
  7. 단계 4의 질의를 반복합니다.

    결과:

     LAST_NAME                 HIRE_DATE
    
     ------------------------- ---------
     Sciarra                   30-SEP-97
     Urman                     07-MRZ-98
     Popp                      07-DEZ-99
    
     3 rows selected.
    
  8. NLS_LANGUAGE를 단계 1에서 설정한 값으로 설정합니다.

참조:

NLS_TERRITORY 매개변수 정보

이 매개변수는 날짜 형식, 시간 기록 형식, 십진수 및 그룹 구분 기호, 로컬 통화 기호, ISO 통화 기호 및 이중 통화 기호에 대한 기본 규칙을 지정합니다.

특정 사항: 기본 규칙은 다음과 같습니다.

허용 가능한 값: Oracle에서 지원하는 모든 지역 이름입니다. 목록을 보려면 Oracle Database Globalization Support Guide를(를) 참조하십시오.

기본값: "로케일 및 NLS_LANG 매개변수 정보"에 설명된 NLS_LANG으로 설정됩니다.

기본값 설정:

예 7-2에서는 NLS_TERRITORY를 JAPANAMERICA로 설정하면 통화 기호에 어떠한 영향을 주는지를 보여 줍니다.

SQL Developer에서 이 예제를 시도하려면 워크시트에 명령문과 질의를 입력합니다. 워크시트에 대한 자세한 내용은 "SQL Developer에서 질의 실행"을 참조하십시오. 여기에 표시된 결과는 SQL*Plus의 결과이므로 형식이 SQL Developer의 결과와 약간 다릅니다.

7-2 NLS_TERRITORY가 통화 기호에 영향을 주는 예

  1. NLS_TERRITORY의 현재 값을 기록합니다.

  2. 단계 1에서의 값이 JAPAN이 아니면 이 값을 변경합니다.

     ALTER SESSION SET NLS_TERRITORY=JAPAN;
    
  3. 다음 질의를 실행합니다.

     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.
    
  4. NLS_TERRITORY의 값을 AMERICA로 변경합니다.

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  5. 단계 3의 질의를 반복합니다.

    결과:

     SALARY
    
     --------------------
    
             $24,000.00
    
             $17,000.00
    
             $17,000.00
    
     3 rows selected.
    
  6. NLS_TERRITORY를 단계 1에서 설정한 값으로 설정합니다.

참조:

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를 AMERICAFRANCE로 설정하면 기본 날짜, 짧은 날짜 및 긴 날짜 형식에 어떠한 영향을 주는지 보여 줍니다. 예 7-4는 NLS_TERRITORY의 값을 변경하여 NLS_DATE_FORMAT에 의해 설정된 기본값을 무효화합니다.

SQL Developer의 예제를 보려면 Worksheet에 명령문 및 query를 입력합니다. 워크시트에 대한 자세한 내용은 "SQL Developer에서 질의 실행"을 참조하십시오. 여기에 표시된 결과는 SQL*Plus의 결과이므로 형식이 SQL Developer의 결과와 약간 다릅니다.

예제 7-3 NLS_TERRITORY가 날짜 형식에 영향을 줌

  1. NLS_TERRITORY의 현재 값을 기록합니다.

  2. 단계 1에서의 값이 AMERICA이 아니면 이 값을 변경합니다.

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  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
    
     --------- ---------- -----------------------------
    
     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.
    
  4. NLS_TERRITORY의 값을 FRANCE로 변경합니다.

     ALTER SESSION SET NLS_TERRITORY=FRANCE;
    
  5. 단계 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로 설정해야 합니다.

  6. NLS_TERRITORY를 단계 1에서 찾은 값으로 설정합니다.

예제 7-4 NLS_DATE_FORMAT이 NLS_TERRITORY를 재정의함

  1. NLS_TERRITORY 및 NLS_DATE_FORMAT의 현재 값을 기록합니다.

  2. 단계 1에서 NLS_TERRITORY의 값이 AMERICA가 아니면 다음 값으로 변경합니다.

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  3. 단계 1에서 NLS_DATE_FORMAT의 값이 'Day Month ddth'가 아니면 다음 값으로 변경합니다.

     ALTER SESSION SET NLS_DATE_FORMAT='Day Month ddth';
    
  4. 다음 질의를 실행합니다(이전 예제의 단계 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.
    
  5. NLS_TERRITORY 및 NLS_DATE_FORMAT을 단계 1에서 입력한 값으로 설정합니다.

참조:

NLS_DATE_LANGUAGE 매개변수 정보

이 파라미터는 일과 월의 이름 및 약어(SQL 함수 TO_CHAR 및 TO_DATE), 기본 날짜 형식(NLS_DATE_FORMAT으로 설정) 및 AM, PM, AD 및 BC에 해당하는 기본 언어의 기호에 대한 언어를 지정합니다.

특정 사항: 다음에 의해 생성되는 일 및 월의 이름과 약어용 언어입니다.

허용 가능한 값: Oracle에서 지원하는 모든 언어 이름입니다. 목록을 보려면 Oracle Database Globalization Support Guide를(를) 참조하십시오.

기본값: "NLS_LANGUAGE 매개변수 정보"에 설명된 NLS_LANGUAGE에 의해 설정됩니다.

예 7-5는 NLS_DATE_LANGUAGE를 FRENCHSWEDISH로 설정하면 표시된 시스템 날짜에 어떠한 영향을 주는지 보여 줍니다.

SQL Developer에서 이 예제를 시도하려면 워크시트에 명령문과 질의를 입력합니다. 워크시트에 대한 자세한 내용은 "SQL Developer에서 질의 실행"을 참조하십시오. 여기에 표시된 결과는 SQL*Plus의 결과이므로 형식이 SQL Developer의 결과와 약간 다릅니다.

예제 7-5 NLS_DATE_LANGUAGE는 표시된 SYSDATE에 영향을 줌

  1. NLS_DATE_LANGUAGE의 현재 값을 살펴봅니다.

  2. 단계 1에서 NLS_DATE_LANGUAGE의 값이 FRENCH가 아니면 다음 값으로 변경합니다.

     ALTER SESSION SET NLS_DATE_LANGUAGE=FRENCH;
    
  3. 다음 질의를 실행합니다.

     SELECT TO_CHAR(SYSDATE, 'Day:Dd Month yyyy') "System Date"
     FROM DUAL;
    

    결과:

     System Date
    
     --------------------------
    
     Vendredi:28 December   2012
    
  4. NLS_DATE_LANGUAGE 값을 SWEDISH으로 변경합니다.

     ALTER SESSION SET NLS_DATE_LANGUAGE=SWEDISH;
    
  5. 단계 3의 질의를 반복합니다.

    결과:

     System Date
    
     -------------------------
    
     Fredag :28 December   2012
    
  6. NLS_DATE_LANGUAGE를 단계 1에서 설정한 값으로 설정합니다.

참조:

NLS_TIMESTAMP_FORMAT 및 NLS_TIMESTAMP_TZ_FORMAT 매개변수 정보

이 매개변수는 TIMESTAMP 오디오 테이프 및 TIMESTAMP WITH LOCAL TIME ZONEaudiotapeTIMESTAMP WITH LOCAL TIME ZONEaudiotape에 대한 기본 날짜 형식을 지정합니다.

지정: 다음의 기본 날짜 형식:

허용 가능한 값: 적합한 모든 날짜/시간 형식 모델입니다. 예:

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_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에 영향을 줌

  1. NLS_CALENDAR의 현재 값을 기록해 둡니다.
  2. 단계 1에서 NLS_CALENDAR의 값이 'English Hijrah'가 아니면 다음 값으로 변경합니다.

     ALTER SESSION SET NLS_CALENDAR='English Hijrah';
    
  3. 다음 질의를 실행합니다.

     SELECT SYSDATE FROM DUAL;
    

    결과:

     SYSDATE
    
     -------------------------
    
     17 Safar             1434
    
  4. NLS_CALENDAR의 값을 'Gregorian'로 변경합니다.

     ALTER SESSION SET NLS_CALENDAR='Gregorian';
    
  5. 다음 질의를 실행합니다.

     SELECT SYSDATE FROM DUAL;
    

    결과:

     SYSDATE
    
     ---------
    
     31-DEC-12
    
  6. NLS_CALENDAR를 단계 1에서 찾은 값으로 설정합니다.

참조:

NLS_NUMERIC_CHARACTERS 매개변수 정보

이 매개변수는 소수점 문자(숫자의 정수 부분과 소수 부분을 분리함) 및 그룹 구분 기호(예: 정수 그룹을 분리하여 천단위와 만단위 표시)를 지정합니다. 그룹 구분 기호는 숫자 형식 요소 G가 반환하는 문자입니다.

지정 사항: 소수점 문자(숫자의 정수 부분 및 소수 부분을 분리) 및 그룹 구분자(예: 정수 그룹을 분리하여 천 단위 및 만 단위를 표시)입니다. 그룹 구분 기호는 숫자 형식 요소 G가 반환하는 문자입니다.

허용 가능한 값: 다음을 제외한 두 개의 다른 단일 바이트 문자입니다.

기본값: "NLS_TERRITORY 매개변수 정보"에 설명된 NLS_TERRITORY에 의해 설정됩니다.

SQL 문에서 다음 중 하나로 숫자를 나타낼 수 있습니다.

예제 7-7에서는 두 개의 다른 NLS_NUMERIC_CHARACTERS 설정이 표시된 동일한 질의 결과에 어떤 영향을 주는지 보여 줍니다.

SQL Developer에서 이 예제를 시도하려면 워크시트에 명령문과 질의를 입력합니다. 워크시트에 대한 자세한 내용은 "SQL Developer에서 질의 실행"을 참조하십시오. 여기에 표시된 결과는 SQL*Plus의 결과이므로 형식이 SQL Developer의 결과와 약간 다릅니다.

예제 7-7 NLS_NUMERIC_CHARACTERS는 소수점 문자 및 그룹 구분 기호에 영향을 줍니다.

  1. NLS_NUMERIC_CHARACTERS의 현재 값을 기록해 둡니다.
  2. 단계 1에서 NLS_NUMERIC_CHARACTERS의 값이 ",."(소수점 문자는 쉼표, 그룹 구분 기호가 마침표)가 아니면 이 값을 변경합니다.

     ALTER SESSION SET NLS_NUMERIC_CHARACTERS=",.";
    
  3. 다음 질의를 실행합니다.

     SELECT TO_CHAR(4000, '9G999D99') "Number" FROM DUAL;
    

    결과:

     Number
    
     ---------
     4.000,00
    
  4. NLS_NUMERIC_CHARACTERS 값을 ",."(소수점 문자는 마침표, 그룹 구분 기호는 콤마)로 변경합니다.

     ALTER SESSION SET NLS_NUMERIC_CHARACTERS=".,";
    
  5. 다음 질의를 실행합니다.

     SELECT TO_CHAR(4000, '9G999D99') "Number" FROM DUAL;
    

    결과:

     Number
    
     ---------
     4,000.00
    
  6. 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를 재정의함

  1. NLS_TERRITORY 및 NLS_CURRENCY의 현재 값을 기록해 둡니다.
  2. 단계 1에서 NLS_TERRITORY의 값이 AMERICA가 아니면 다음 값으로 변경합니다.

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  3. 다음 질의를 실행합니다.

     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
    
  4. NLS_CURRENCY의 값을 '©'로 변경합니다.

     ALTER SESSION SET NLS_CURRENCY='©';
    
  5. 다음 질의를 실행합니다.

     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
    
  6. NLS_TERRITORY 및 NLS_CURRENCY를 단계 1에서 설정한 값으로 설정합니다.

참조:

NLS_ISO_CURRENCY 매개변수 정보

이 매개변수는 ISO 통화 기호(숫자 형식 요소 C에서 반환된 문자열)를 지정합니다.

특정 사항: ISO 통화 기호(숫자 형식 요소 C가 반환하는 문자열).

허용 가능한 값: 적합한 통화 기호 문자열입니다.

기본값: "NLS_TERRITORY 매개변수 정보"에 설명된 NLS_TERRITORY에 의해 설정됩니다.

로컬 통화 기호는 모호할 수 있지만 ISO 통화 기호는 고유합니다. 예 7-9에서는 지역 AUSTRALIAAMERICA의 로컬 통화 기호는 동일하지만 ISO 통화 기호는 다름를 보여 줍니다.

SQL Developer에서 이 예제를 시도하려면 워크시트에 명령문과 질의를 입력합니다. 워크시트에 대한 자세한 내용은 "SQL Developer에서 질의 실행"을 참조하십시오. 여기에 표시된 결과는 SQL*Plus의 결과이므로 형식이 SQL Developer의 결과와 약간 다릅니다.

예 7-9 NLS_ISO_CURRENCY

  1. NLS_TERRITORY 및 NLS_ISO_CURRENCY의 현재 값을 기록해 둡니다.
  2. 단계 1에서 NLS_TERRITORY의 값이 AUSTRALIA가 아니면 이 값을 변경합니다.

     ALTER SESSION SET NLS_TERRITORY=AUSTRALIA;
    
  3. 다음 질의를 실행합니다.

     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
    
  4. NLS_TERRITORY의 값을 AMERICA로 변경합니다.

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  5. 다음 질의를 실행합니다.

     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
    
  6. NLS_TERRITORY 및 NLS_ISO_CURRENCY를 단계 1에서 설정한 값으로 설정합니다.

참조:

NLS_DUAL_CURRENCY 매개변수 정보

이 매개변수는 이중 통화 기호를 지정합니다(유로 전환 기간 동안 유로화 통화 기호를 지원하기 위해 도입되었습니다).

특정사항: 이중 통화 기호입니다(유로 전환 기간 동안 유로화 통화 기호를 지원하기 위해 도입되었습니다).

허용 가능한 값: 적합한 통화 기호 문자열입니다.

기본값: "NLS_TERRITORY 매개변수 정보"에 설명된 NLS_TERRITORY에 의해 설정됩니다.

참조:

NLS_SORT 매개변수 정보

이 파라미터는 ORDER BY 절이 있는 query의 언어 정렬 순서(조합 순서)를 지정합니다.

지정: ORDER BY 절이 있는 질의의 언어 정렬 순서(조합 순서)입니다.

허용 가능한 값:

기본값: "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가 언어 정렬 순서에 미치는 영향

  1. 스페인어 단어의 테이블을 생성합니다.

     CREATE TABLE temp (name VARCHAR2(15));
    
  2. 테이블을 몇 가지 스페인어 단어로 채웁니다.

     INSERT INTO temp (name) VALUES ('laguna');
     INSERT INTO temp (name) VALUES ('llama');
     INSERT INTO temp (name) VALUES ('loco');
    
  3. NLS_SORT의 현재 값을 기록해 둡니다.
  4. 단계 3에서 NLS_SORT 값이 BINARY가 아니면 다음 값을 다음과 같이 변경합니다.

     ALTER SESSION SET NLS_SORT=BINARY;
    
  5. 다음 질의를 실행합니다.

     SELECT * FROM temp ORDER BY name;
    

    결과:

     NAME
    
     ---------------
     laguna
    
     llama
    
     loco
    
  6. NLS_SORT 값을 SPANISH_M(전통 스페인어))으로 변경합니다.

     ALTER SESSION SET NLS_SORT=SPANISH_M;
    
  7. 단계 5의 질의를 반복합니다.

    결과:

     NAME
    
     ---------------
     laguna
    
     loco
    
     llama
    
  8. 테이블을 삭제합니다.

     DROP TABLE temp;
    
  9. NLS_SORT를 단계 3에서 설정한 값으로 설정합니다.

참조:

NLS_COMP 매개변수 정보

이 파라미터는 SQL 작업의 문자 비교 동작을 지정합니다.

특정 사항: SQL 작업의 문자 비교 동작입니다.

허용 가능한 값:

기본값: BINARY

예 7-11에서는 질의 결과가 NLS_COMP 설정에 따라 달라질 수 있음을 보여 줍니다.

SQL Developer에서 이 예제를 시도하려면 워크시트에 명령문과 질의를 입력합니다. 워크시트에 대한 자세한 내용은 "SQL Developer에서 질의 실행"을 참조하십시오. 여기에 표시된 결과는 SQL*Plus의 결과이므로 형식이 SQL Developer의 결과와 약간 다릅니다.

예제 7-11 NLS_COMP가 SQL 문자 비교에 미치는 영향

  1. NLS_SORT 및 NLS_COMP의 현재 값을 기록해 둡니다.
  2. 단계 1에서 NLS_SORT 및 NLS_COMP 값이 각각 SPANISH_M(스페인어(전통)) 및 BINARY가 아닌 경우 다음과 같이 변경합니다.

     ALTER SESSION SET NLS_SORT=SPANISH_M NLS_COMP=BINARY;
    
  3. 다음 질의를 실행합니다.

     SELECT LAST_NAME FROM EMPLOYEES
     WHERE LAST_NAME LIKE 'C%';
    

    결과:

     LAST_NAME
    
     -------------------------
     Cabrio
     Cambrault
     Cambrault
     Chen
     Chung
     Colmenares
    
     6 rows selected
    
  4. NLS_COMP의 값을 LINGUISTIC로 변경합니다.

     ALTER SESSION SET NLS_COMP=LINGUISTIC;
    
  5. 단계 3의 질의를 반복합니다.

    결과:

     LAST_NAME
    
     -------------------------
     Cabrio
     Cambrault
     Cambrault
     Colmenares
    
     4 rows selected
    

    이번에는 스페인어(전통)에서 Chen 및 Chung이 chc 다음에오는 단일 문자로 처리하므로 Chen 및 Chung이 반환되지 않습니다.

  6. NLS_SORT 및 NLS_COMP를 단계 1의 값으로 설정합니다.

참조:

NLS_LENGTH_SEMANTICS 매개변수 정보

이 파라미터는 CHAR, VARCHAR2 및 LONG 문자 데이터 유형의 열에 대한 길 의미 즉, 이러한 열이 바이트로 지정되는지 문자로 지정되는지를 나타냅니다. 매개변수를 설정한 후 선언한 열에만 적용됩니다.

특정 사항: CHAR, VARCHAR2 및 LONG 문자 데이터 유형의 열에 대한 길이 의미 즉, 이러한 열이 바이트로 지정되는지 문자로 지정되는지 지정합니다. 매개변수를 설정한 후 선언한 열에만 적용됩니다.

허용 가능한 값:

기본값: BYTE

SQL Developer에서 이 예제를 시도하려면 워크시트에 명령문과 질의를 입력합니다. 워크시트에 대한 자세한 내용은 "SQL Developer에서 질의 실행"을 참조하십시오. 여기에 표시된 결과는 SQL*Plus의 결과이므로 형식이 SQL Developer의 결과와 약간 다릅니다.

예제 7-12 NLS_LENGTH_SEMANTICS가 VARCHAR2 열의 저장에 미치는 영향

  1. NLS_LENGTH_SEMANTICS의 현재 값을 기록해 둡니다.
  2. 단계 1에서 NLS_LENGTH_SEMANTICS 값이 BYTE가 아닌 경우 다음과 같이 변경합니다.

     ALTER SESSION SET NLS_LENGTH_SEMANTICS=BYTE;
    
  3. VARCHAR2 열을 가진 테이블을 생성합니다.

     CREATE TABLE SEMANTICS_BYTE(SOME_DATA VARCHAR2(20));
    
  4. 접속 탭을 누릅니다.

  5. Connections(연결) 프레임에서 hr_conn을 확장합니다.

  6. 스키마 객체 유형 목록에서 테이블을 확장합니다.

  7. 테이블 목록에서 SEMANTICS_BYTE를 선택합니다.

    [접속] 프레임 오른쪽에 [열] 창에 [열 이름] SOME_DATA, [데이터 유형]이 VARCHAR2(20 BYTE)로 표시됩니다.

  8. NLS_LENGTH_SEMANTICS의 값을 CHAR로 변경합니다.

     ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR;
    
  9. VARCHAR2 열을 포함하는 다른 테이블을 만듭니다.

     CREATE TABLE SEMANTICS_CHAR(SOME_DATA VARCHAR2(20));
    
  10. 연결 프레임에서 새로 고침 아이콘을 누릅니다.

    이제 테이블 목록에 SEMANTICS_CHAR이 포함됩니다.

  11. SEMANTICS_CHAR을 선택합니다.

    [열] 창에 [열 이름] SOME_DATA, [데이터 유형]에 VARCHAR2(20 CHAR)이 표시됩니다.

  12. SEMANTICS_BYTE를 다시 선택합니다.

    [열] 창의 [열 이름]에 SOME_DATA, [데이터 유형]이 여전히 VARCHAR2(20 BYTE)로 표시됩니다.

  13. NLS_LENGTH_SEMANTICS 값을 단계 1의 값으로 설정합니다.

참조: