Sobre Parâmetros NLS Individuais

Muitos parâmetros NLS individuais estão disponíveis.

Consulte também:

Sobre Configurações Regionais e o Parâmetro NLS_LANG

Uma configuração regional é um ambiente linguístico e cultural em que um sistema ou aplicativo é executado. A maneira mais simples de especificar uma configuração regional para software Oracle Database é definir o parâmetro NLS_LANG.

O parâmetro NLS_LANG define os valores padrão dos parâmetros NLS_LANGUAGE e NLS_TERRITORY para tanto a sessão do servidor (por exemplo, processamento de instrução SQL) quanto o aplicativo cliente (por exemplo, exibir formatação nas ferramentas de padrão do Oracle Database). O parâmetro NLS_LANG também define o conjunto de caracteres que o aplicativo cliente usa para dados informados ou exibidos.

O valor padrão de NLS_LANG é definido durante o banco de dados de instalação. Você pode usar a instrução ALTER SESSION para alterar os valores dos parâmetros NLS, incluindo os definidos por NLS_LANG, para sua sessão. No entanto, somente o cliente por alterar as definições NLS no ambiente cliente.

Consulte também:

Sobre o Parâmetro NLS_LANGUAGE

Este parâmetro especifica o idioma padrão do banco de dados.

Especifica: Idioma padrão do banco de dados. Convenções padrão para:

Valores Aceitáveis: qualquer nome de idioma que o sistema Oracle suporte. Para obter uma lista, consulte Oracle Database Globalization Support Guide.

Valor Padrão: Definido por NLS_LANG, descrito em "Sobre Local e o Parâmetro NLS_LANG".

Define valores padrão de:

Exemplo 7-1 mostra como a definição de NLS_LANGUAGE como ITALIAN e GERMAN afeta as mensagens do servidor e as abreviações do mês.

Para testar este exemplo no SQL Developer, informe as instruções e as consultas na Planilha. Para obter informações sobre a Planilha, consulte "Executando Consultas no SQL Developer". Os resultados mostrados aqui são provenientes do SQL*Plus; seu formato é ligeiramente diferente no SQL Developer.

Exemplo 7-1 NLS_LANGUAGE Afeta a Mensagem do Servidor e Abreviações de Mês

  1. Observe o valor atual de NLS_LANGUAGE.

  2. Se o valor da etapa 1 não for ITALIAN, altere-o:

     ALTER SESSION SET NLS_LANGUAGE=ITALIAN;
    
  3. Consultar uma tabela não existente:

     SELECT * FROM nonexistent_table;
    

    Resultado:

     SELECT * FROM nonexistent_table
                 *
     ERROR at line 1:
     ORA-00942: tabella o vista inesistente
    
  4. Execute a seguinte consulta:

     SELECT LAST_NAME, HIRE_DATE
     FROM EMPLOYEES
     WHERE EMPLOYEE_ID IN (111, 112, 113);
    

    Resultado:

     LAST_NAME                 HIRE_DATE
    
     ------------------------- ---------
     Sciarra                   30-SET-97
     Urman                     07-MAR-98
     Popp                      07-DIC-99
    
     3 rows selected.
    
  5. Altere o valor de NLS_LANGUAGE para GERMAN:

     ALTER SESSION SET NLS_LANGUAGE=GERMAN;
    
  6. Repita a consulta da etapa 3.

    Resultado:

     SELECT * FROM nonexistent_table
                 *
     ERROR at line 1:
     ORA-00942: Tabelle oder View nicht vorhanden
    
  7. Repita a consulta da etapa 4.

    Resultado:

     LAST_NAME                 HIRE_DATE
    
     ------------------------- ---------
     Sciarra                   30-SEP-97
     Urman                     07-MRZ-98
     Popp                      07-DEZ-99
    
     3 rows selected.
    
  8. Definir NLS_LANGUAGE como o valor que tinha na etapa 1.

Consulte também:

Sobre o Parâmetro NLS_TERRITORY

Este parâmetro especifica convenções padrão para formato de data, formato de carimbo de data/hora, separador decimal e de grupo, símbolo de moeda local, símbolo de moeda ISO e símbolo de moeda dupla.

Especifica: Convenções padrão para:

Valores Aceitáveis: Qualquer nome de território que o sistema Oracle suporte. Para obter uma lista, consulte Oracle Database Globalization Support Guide.

Valor Padrão: Definido por NLS_LANG, descrito em "Sobre Local e o Parâmetro NLS_LANG".

Define valores padrão de:

Exemplo 7-2 mostra como definir NLS_TERRITORY como JAPAN e AMERICA afeta o símbolo da moeda.

Para testar este exemplo no SQL Developer, informe as instruções e as consultas na Planilha. Para obter informações sobre a Planilha, consulte "Executando Consultas no SQL Developer". Os resultados mostrados aqui são provenientes do SQL*Plus; seu formato é ligeiramente diferente no SQL Developer.

Exemplo 7-2 NLS_TERRITORY Afeta o Símbolo da Moeda

  1. Observe o valor atual de NLS_TERRITORY.

  2. Se o valor da etapa 1 não for JAPAN, altere-o:

     ALTER SESSION SET NLS_TERRITORY=JAPAN;
    
  3. Execute a seguinte consulta:

     SELECT TO_CHAR(SALARY,'L99G999D99') SALARY
     FROM EMPLOYEES
     WHERE EMPLOYEE_ID IN (100, 101, 102);
    

    Resultado:

     SALARY
    
     --------------------
    
             ©24,000.00
    
             ©17,000.00
    
             ©17,000.00
    
     3 rows selected.
    
  4. Altere o valor do NLS_TERRITORY para AMERICA:

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  5. Repita a consulta da etapa 3.

    Resultado:

     SALARY
    
     --------------------
    
             $24,000.00
    
             $17,000.00
    
             $17,000.00
    
     3 rows selected.
    
  6. Defina NLS_TERRITORY como o valor da etapa 1.

Consulte também:

Sobre o Parâmetro NLS_DATE_FORMAT

Este parâmetro especifica o formato de data padrão a ser usado com as funções TO_CHAR e TO_DATE.

Especifica: Formato de data padrão a ser usado com as funções TO_CHAR e TO_DATE (que são introduzidas em "Usando Funções de Conversão em Consultas").

Valores Aceitáveis: Qualquer modelo de formato de data/hora válido. Por exemplo:

NLS_DATE_FORMAT='MM/DD/YYYY'

Para obter informações sobre modelos do formato de data e hora, consulte Referência da Linguagem SQL do Oracle Database.

Valor Padrão: Definido por NLS_TERRITORY, descrito em "Sobre o Parâmetro NLS_TERRITORY".

O formato de data padrão pode não corresponder à convenção usada em um determinado território. Para obter datas em formatos localizados, você pode usar os formatos 'DS' (data abreviada) e 'DL' (data longa) . Exemplo 7-3 mostra como definir NLS_TERRITORY para AMERICA e FRANCE afeta os formatos padrão, curto e longo de data. Exemplo 7-4 altera o valor de NLS_DATE_FORMAT, substituindo o conjunto de valores padrão por NLS_TERRITORY.

Para experimentar os exemplos no SQL Developer, insira as instruções e consultas na Planilha. Para obter informações sobre a Planilha, consulte "Executando Consultas no SQL Developer". Os resultados mostrados aqui são provenientes do SQL*Plus; seu formato é ligeiramente diferente no SQL Developer.

Exemplo 7-3 NLS_TERRITORY Afeta os Formatos de Data

  1. Observe o valor atual de NLS_TERRITORY.

  2. Se o valor da etapa 1 não for AMERICA, altere-o:

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  3. Execute a seguinte consulta:

     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);
    

    Resultado:

     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. Altere o valor de NLS_TERRITORY para FRANCE:

     ALTER SESSION SET NLS_TERRITORY=FRANCE;
    
  5. Repita a consulta da etapa 3.

    Resultado:

     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.
    

    (Para obter os nomes dos dias e meses em francês, você deve definir NLS_LANGUAGE ou NLS_DATE_LANGUAGE como FRENCH antes de executar a consulta.)

  6. Defina NLS_TERRITORY como o valor que tinha na etapa 1.

Exemplo 7-4 NLS_DATE_FORMAT Substituições NLS_TERRITORY

  1. Observe os valores atuais de NLS_TERRITORY e NLS_DATE_FORMAT.

  2. Se o valor de NLS_TERRITORY na etapa 1 não for AMERICA, altere-o:

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  3. Se o valor de NLS_DATE_FORMAT na etapa 1 não for 'Day Month ddth', altere-o:

     ALTER SESSION SET NLS_DATE_FORMAT='Day Month ddth';
    
  4. Execute esta consulta (do exemplo anterior, etapa 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);
    

    Resultado:

     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. Defina NLS_TERRITORY e NLS_DATE_FORMAT como os valores que eles tiveram na etapa 1.

Consulte também:

Sobre o Parâmetro NLS_DATE_LANGUAGE

Este parâmetro especifica o idioma para nomes e abreviações de dias e meses que são produzidos por: funções SQL TO_CHAR e TO_DATE, o formato de data padrão (definido por NLS_DATE_FORMAT) e símbolos para os equivalentes de idioma padrão de AM, PM, AD e BC.

Especifica: Idioma para nomes e abreviações de dias e meses produzidos por:

Valores Aceitáveis: qualquer nome de idioma que o sistema Oracle suporte. Para obter uma lista, consulte Oracle Database Globalization Support Guide.

Valor Padrão: Definido por NLS_LANGUAGE, descrito em "Sobre o Parâmetro NLS_LANGUAGE".

Exemplo 7-5 mostra como definir NLS_DATE_LANGUAGE para FRENCH e SWEDISH afeta a data do sistema exibida.

Para testar este exemplo no SQL Developer, informe as instruções e as consultas na Planilha. Para obter informações sobre a Planilha, consulte "Executando Consultas no SQL Developer". Os resultados mostrados aqui são provenientes do SQL*Plus; seu formato é ligeiramente diferente no SQL Developer.

Exemplo 7-5 NLS_DATE_LANGUAGE Afeta SYSDATE Exibido

  1. Observe o valor atual de NLS_DATE_LANGUAGE.

  2. Se o valor de NLS_DATE_LANGUAGE na etapa 1 não for FRENCH, altere-o:

     ALTER SESSION SET NLS_DATE_LANGUAGE=FRENCH;
    
  3. Execute esta consulta:

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

    Resultado:

     System Date
    
     --------------------------
    
     Vendredi:28 December   2012
    
  4. Altere o valor de NLS_DATE_LANGUAGE para SWEDISH:

     ALTER SESSION SET NLS_DATE_LANGUAGE=SWEDISH;
    
  5. Repita a consulta da etapa 3.

    Resultado:

     System Date
    
     -------------------------
    
     Fredag :28 December   2012
    
  6. Defina NLS_DATE_LANGUAGE como o valor que tinha na etapa 1.

Consulte também:

Sobre os Parâmetros NLS_TIMESTAMP_FORMAT e NLS_TIMESTAMP_TZ_FORMAT

Este parâmetro especifica o formato de data padrão para a fita de áudio TIMESTAMP e TIMESTAMP WITH LOCAL TIME ZONEaudiotapeTIMESTAMP WITH LOCAL TIME ZONEaudiotape.

Especificar: Formato de data padrão para:

Valores Aceitáveis: Qualquer modelo de formato de data/hora válido. Por exemplo:

NLS_TIMESTAMP_FORMAT='YYYY-MM-DD HH:MI:SS.FF'
NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH:MI:SS.FF TZH:TZM'

Para obter informações sobre modelos do formato de data e hora, consulte Referência da Linguagem SQL do Oracle Database.

Valor Padrão: Definido por NLS_TERRITORY, descrito em "Sobre o Parâmetro NLS_TERRITORY".

Consulte também:

Sobre o Parâmetro NLS_CALENDAR

Este parâmetro especifica o sistema de calendário para o banco de dados.

Especifica: Sistema do calendário para o banco de dados.

Valores Aceitáveis: qualquer sistema de calendário compatível com a Oracle. Para obter uma lista, consulte Oracle Database Globalization Support Guide.

Valor padrão: Gregorian

Exemplo 7-6 mostra como definir NLS_CALENDAR para 'English Hijrah' e Gregorian afeta a data do sistema exibida.

Para testar este exemplo no SQL Developer, informe as instruções e as consultas na Planilha. Para obter informações sobre a Planilha, consulte "Executando Consultas no SQL Developer". Os resultados mostrados aqui são provenientes do SQL*Plus; seu formato é ligeiramente diferente no SQL Developer.

Exemplo 7-6 NLS_CALENDAR Afeta SYSDATE Exibido

  1. Observe o valor atual de NLS_CALENDAR.
  2. Se o valor de NLS_CALENDAR na etapa 1 não for 'English Hijrah', altere-o:

     ALTER SESSION SET NLS_CALENDAR='English Hijrah';
    
  3. Execute a seguinte consulta:

     SELECT SYSDATE FROM DUAL;
    

    Resultado:

     SYSDATE
    
     -------------------------
    
     17 Safar             1434
    
  4. Altere o valor de NLS_CALENDAR para 'Gregorian':

     ALTER SESSION SET NLS_CALENDAR='Gregorian';
    
  5. Execute a seguinte consulta:

     SELECT SYSDATE FROM DUAL;
    

    Resultado:

     SYSDATE
    
     ---------
    
     31-DEC-12
    
  6. Defina NLS_CALENDAR como o valor que tinha na etapa 1.

Consulte também:

Sobre o Parâmetro NLS_NUMERIC_CHARACTERS

Este parâmetro especifica o caractere decimal (que separa o número inteiro e as partes decimais de um número) e o separador de grupo (que separa grupos inteiros para mostrar milhares e milhões, por exemplo). O separador de grupo é o caractere retornado pelo elemento de formato numérico G.

Especifica: Caractere decimal (que separa o número inteiro e as partes decimais de um número) e separador do grupo (que separa grupos inteiros para mostrar milhares e milhões, por exemplo). O separador de grupo é o caractere retornado pelo elemento de formato numérico G.

Valores Aceitáveis: Quaisquer dois caracteres de byte único diferentes, exceto:

Valor Padrão: Definido por NLS_TERRITORY, descrito em "Sobre o Parâmetro NLS_TERRITORY".

Em uma instrução SQL, você pode representar um número como:

Exemplo 7-7 mostra como duas definições NLS_NUMERIC_CHARACTERS diferentes afetam o resultado exibido da mesma consulta.

Para testar este exemplo no SQL Developer, informe as instruções e as consultas na Planilha. Para obter informações sobre a Planilha, consulte "Executando Consultas no SQL Developer". Os resultados mostrados aqui são provenientes do SQL*Plus; seu formato é ligeiramente diferente no SQL Developer.

Exemplo 7-7 NLS_NUMERIC_CHARACTERS Afeta um Caractere Decimal e um Separador de Grupo

  1. Observe o valor atual de NLS_NUMERIC_CHARACTERS.
  2. Se o valor de NLS_NUMERIC_CHARACTERS na etapa 1 não for ",." (o caractere decimal é uma vírgula e o separador de grupo é um ponto), use o seguinte comando para alterá-lo:

     ALTER SESSION SET NLS_NUMERIC_CHARACTERS=",.";
    
  3. Execute a seguinte consulta:

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

    Resultado:

     Number
    
     ---------
     4.000,00
    
  4. Altere o valor de NLS_NUMERIC_CHARACTERS para ",." (o caractere decimal é um ponto e o separador de grupo é uma vírgula):

     ALTER SESSION SET NLS_NUMERIC_CHARACTERS=".,";
    
  5. Execute a seguinte consulta:

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

    Resultado:

     Number
    
     ---------
     4,000.00
    
  6. Defina NLS_NUMERIC_CHARACTERS como o valor que tinha na etapa 1.

Consulte também:

Sobre o Parâmetro NLS_CURRENCY

Este parâmetro especifica o símbolo de moeda do local (a sequência de caracteres retornada pelo elemento de formato numérico L).

Especifica: Símbolo de moeda local (a sequência de caracteres retornada pelo elemento L de formato numérico).

Valores Aceitáveis: Qualquer string válida de símbolo monetário.

Valor Padrão: Definido por NLS_TERRITORY, descrito em "Sobre o Parâmetro NLS_TERRITORY".

Exemplo 7-8 altera o valor de NLS_CURRENCY, substituindo o valor padrão definido por NLS_TERRITORY. Para testar este exemplo no SQL Developer, informe as instruções e as consultas na Planilha. Para obter informações sobre a Planilha, consulte "Executando Consultas no SQL Developer". Os resultados mostrados aqui são provenientes do SQL*Plus; seu formato é ligeiramente diferente no SQL Developer.

Exemplo 7-8 NLS_CURRENCY Substitui NLS_TERRITORY

  1. Observe os valores atuais de NLS_TERRITORY e NLS_CURRENCY.
  2. Se o valor de NLS_TERRITORY na etapa 1 não for AMERICA, altere-o:

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  3. Execute esta consulta:

     SELECT TO_CHAR(salary, 'L099G999D99') "Salary"
     FROM EMPLOYEES
     WHERE salary > 13000;
    

    Resultado:

     Salary
    
     ---------------------
    
             $024,000.00
    
             $017,000.00
    
             $017,000.00
    
             $014,000.00
    
             $013,500.00
    
  4. Altere o valor de NLS_CURRENCY para '©':

     ALTER SESSION SET NLS_CURRENCY='©';
    
  5. Execute esta consulta:

     SELECT TO_CHAR(salary, 'L099G999D99') "Salary"
     FROM EMPLOYEES
     WHERE salary > 13000;
    

    Resultado:

     Salary
    
     ---------------------
    
             ©024,000.00
    
             ©017,000.00
    
             ©017,000.00
    
             ©014,000.00
    
             ©013,500.00
    
  6. Defina NLS_TERRITORY e NLS_CURRENCY como os valores que eles tiveram na etapa 1.

Consulte também:

Sobre o Parâmetro NLS_ISO_CURRENCY

Este parâmetro especifica o símbolo de moeda ISO (a string retornada pelo elemento de formato numérico C).

Especifica: Símbolo da moeda ISO (a string do caractere retornada pelo elemento do formato numérico C).

Valores Aceitáveis: Qualquer string válida de símbolo monetário.

Valor Padrão: Definido por NLS_TERRITORY, descrito em "Sobre o Parâmetro NLS_TERRITORY".

Os símbolos de moeda local podem ser ambíguos, mas os símbolos de moeda ISO são exclusivos. Exemplo 7-9 mostra que os territórios AUSTRALIA e AMERICA têm o mesmo símbolo de moeda local, mas diferentes símbolos de moeda ISO.

Para testar este exemplo no SQL Developer, informe as instruções e as consultas na Planilha. Para obter informações sobre a Planilha, consulte "Executando Consultas no SQL Developer". Os resultados mostrados aqui são provenientes do SQL*Plus; seu formato é ligeiramente diferente no SQL Developer.

Exemplo 7-9 NLS_ISO_CURRENCY

  1. Observe os valores atuais de NLS_TERRITORY e NLS_ISO_CURRENCY.
  2. se o valor de NLS_TERRITORY na etapa 1 não for AUSTRALIA, altere-o:

     ALTER SESSION SET NLS_TERRITORY=AUSTRALIA;
    
  3. Execute a seguinte consulta:

     SELECT TO_CHAR(salary, 'L099G999D99') "Local",
             TO_CHAR(salary, 'C099G999D99') "ISO"
     FROM EMPLOYEES
     WHERE salary > 15000;
    

    Resultado:

     Local                 ISO
    
     --------------------- ------------------
    
             $024,000.00      AUD024,000.00
    
             $017,000.00      AUD017,000.00
    
             $017,000.00      AUD017,000.00
    
  4. Altere o valor de NLS_TERRITORY para AMERICA:

     ALTER SESSION SET NLS_TERRITORY=AMERICA;
    
  5. Execute a seguinte consulta:

     SELECT TO_CHAR(salary, 'L099G999D99') "Local",
             TO_CHAR(salary, 'C099G999D99') "ISO"
     FROM EMPLOYEES
     WHERE salary > 15000;
    

    Resultado:

     Local                 ISO
    
     --------------------- ------------------
    
             $024,000.00      USD024,000.00
    
             $017,000.00      USD017,000.00
    
             $017,000.00      USD017,000.00
    
  6. Defina NLS_TERRITORY e NLS_ISO_CURRENCY como os valores que eles tiveram na etapa 1.

Consulte também:

Sobre o Parâmetro NLS_DUAL_CURRENCY

Este parâmetro especifica o símbolo de moeda dupla (introduzido para suportar o símbolo de moeda do euro durante o período da transição do euro).

Especifica: Símbolo de moeda dupla (introduzido para suportar o símbolo de moeda do euro durante o período da transição do euro).

Valores Aceitáveis: Qualquer string válida de símbolo monetário.

Valor Padrão: Definido por NLS_TERRITORY, descrito em "Sobre o Parâmetro NLS_TERRITORY".

Consulte também:

Sobre o Parâmetro NLS_SORT

Este parâmetro especifica a ordem de classificação linguistica (sequência de colagem) para consultas que têm a cláusula ORDER BY.

Especifica: Ordem de classificação linguística (sequência de colagem) para consultas que têm a cláusula ORDER BY.

Valores Aceitáveis:

Valor Padrão: Definido por NLS_LANGUAGE, descrito em "Sobre o Parâmetro NLS_LANGUAGE".

O exemplo 7-10 mostra como duas definições NLS_SORT diferentes afetam o resultado exibido da mesma consulta. As definições são BINARY e Espanhol Tradicional (SPANISH_M). Espanhol Tradicional trata·ch, ll, e ñ como letras que vêm após c, l e n, respectivamente.

Para testar este exemplo no SQL Developer, informe as instruções e as consultas na Planilha. Para obter informações sobre a Planilha, consulte "Executando Consultas no SQL Developer". Os resultados mostrados aqui são provenientes do SQL*Plus; seu formato é ligeiramente diferente no SQL Developer.

Sem Distinção entre Maiúsculas e Minúsculas

As operações no Oracle Database são sensíveis ao maiúsculo e aos acentos dos caracteres. Para executar uma classificação sem distinção entre maiúsculas e minúsculas, anexe _CI ao valor do parâmetro NLS_SORT (por exemplo, BINARY_CI ou GERMAN_CI). Para executar uma classificação que não faça distinção entre maiúsculas e minúsculas e acento, anexe _AI ao valor do parâmetro NLS_SORT (por exemplo, BINARY_AI ou FRENCH_M_AI).

Exemplo 7-10 NLS_SORT Afeta a Ordem de Classificação Linguística

  1. Crie uma tabela para palavras em espanhol:

     CREATE TABLE temp (name VARCHAR2(15));
    
  2. Preencha a tabela com algumas palavras em espanhol:

     INSERT INTO temp (name) VALUES ('laguna');
     INSERT INTO temp (name) VALUES ('llama');
     INSERT INTO temp (name) VALUES ('loco');
    
  3. Observe o valor atual de NLS_SORT.
  4. Se o valor de NLS_SORT na etapa 3 não for BINARY, altere-o:

     ALTER SESSION SET NLS_SORT=BINARY;
    
  5. Execute a seguinte consulta:

     SELECT * FROM temp ORDER BY name;
    

    Resultado:

     NAME
    
     ---------------
     laguna
    
     llama
    
     loco
    
  6. Altere o valor de NLS_SORT para SPANISH_M (Espanhol Tradicional):

     ALTER SESSION SET NLS_SORT=SPANISH_M;
    
  7. Repita a consulta da etapa 5.

    Resultado:

     NAME
    
     ---------------
     laguna
    
     loco
    
     llama
    
  8. Elimine a tabela:

     DROP TABLE temp;
    
  9. Definiu NLS_SORT como o valor que tinha na etapa 3.

Consulte também:

Sobre o Parâmetro NLS_COMP

Este parâmetro especifica o comportamento de comparação de caracteres das operações SQL.

Especifica: Comportamento de comparação de caracteres de operações SQL.

Valores Aceitáveis:

Valor Padrão: BINARY

O Exemplo 7-11 mostra que o resultado de uma consulta pode depender da definição NLS_COMP.

Para testar este exemplo no SQL Developer, informe as instruções e as consultas na Planilha. Para obter informações sobre a Planilha, consulte "Executando Consultas no SQL Developer". Os resultados mostrados aqui são provenientes do SQL*Plus; seu formato é ligeiramente diferente no SQL Developer.

Exemplo 7-11 NLS_COMP Afeta a Comparação de Caracteres SQL

  1. Observe os valores atuais de NLS_SORT e NLS_COMP.
  2. Se os valores de NLS_SORT e NLS_COMP na etapa 1 não forem SPANISH_M (Espanhol Tradicional) e BINARY, respectivamente, altere-os:

     ALTER SESSION SET NLS_SORT=SPANISH_M NLS_COMP=BINARY;
    
  3. Execute a seguinte consulta:

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

    Resultado:

     LAST_NAME
    
     -------------------------
     Cabrio
     Cambrault
     Cambrault
     Chen
     Chung
     Colmenares
    
     6 rows selected
    
  4. Altere o valor de NLS_COMP para LINGUISTIC:

     ALTER SESSION SET NLS_COMP=LINGUISTIC;
    
  5. Repita a consulta da etapa 3.

    Resultado:

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

    Desta vez, Chen e Chung não são retornados porque Espanhol Tradicional trata ch como um único caractere que segue c.

  6. Defina NLS_SORT e NLS_COMP para os valores que eles tiveram na etapa 1.

Consulte também:

Sobre o Parâmetro NLS_LENGTH_SEMANTICS

Esse parâmetro especifica a semântica de comprimento das colunas dos tipos de dados CHAR, VARCHAR2 e LONG; ou seja, se essas colunas são especificadas em bytes ou em caracteres. (Só se aplica a colunas declaradas após a definição do parâmetro.)

Especifica: Semântica de tamanho para colunas dos tipos CHAR, VARCHAR2 e LONG; ou seja, se essas colunas são especificadas em bytes ou em caracteres. (Só se aplica a colunas declaradas após a definição do parâmetro.)

Valores Aceitáveis:

Valor Padrão: BYTE

Para testar este exemplo no SQL Developer, informe as instruções e as consultas na Planilha. Para obter informações sobre a Planilha, consulte "Executando Consultas no SQL Developer". Os resultados mostrados aqui são provenientes do SQL*Plus; seu formato é ligeiramente diferente no SQL Developer.

Exemplo 7-12 NLS_LENGTH_SEMANTICS Afeta o Armazenamento da coluna VARCHAR2

  1. Observe os valores atuais de NLS_LENGTH_SEMANTICS.
  2. Se o valor de NLS_LENGTH_SEMANTICS na etapa 1 não for BYTE, altere-o:

     ALTER SESSION SET NLS_LENGTH_SEMANTICS=BYTE;
    
  3. Crie uma tabela com uma coluna VARCHAR2:

     CREATE TABLE SEMANTICS_BYTE(SOME_DATA VARCHAR2(20));
    
  4. Clique na guia Conexões.

  5. No quadro Conexões, expanda hr_conn.

  6. Na lista de tipos de objeto de esquema, expanda Tabelas.

  7. Na lista de tabelas, selecione SEMANTICS_BYTE.

    À direita do quadro Conexões, o painel Colunas mostra que, para Nome da Coluna SOME_DATA, o Tipo de Dados é VARCHAR2(20 BYTE).

  8. Altere o valor de NLS_LENGTH_SEMANTICS para CHAR:

     ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR;
    
  9. Crie outra tabela com uma coluna VARCHAR2:

     CREATE TABLE SEMANTICS_CHAR(SOME_DATA VARCHAR2(20));
    
  10. No quadro Conexões, clique no ícone Atualizar.

    A lista de tabelas agora inclui SEMANTICS_CHAR.

  11. Selecione SEMANTICS_CHAR.

    O painel Colunas mostra que, para Nome da Coluna SOME_DATA, o Tipo de Dados é VARCHAR2(20 CHAR).

  12. Selecione SEMANTICS_BYTE novamente.

    O painel Colunas mostra que, para Nome da Coluna SOME_DATA, o Tipo de Dados ainda é VARCHAR2(20 BYTE).

  13. Defina o valor do NLS_LENGTH_SEMANTICS como o valor da etapa 1.

Consulte também: