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 um local para software Oracle AI 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 AI 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 AI 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 esta 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 AI 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 esta 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 de Linguagem SQL do Oracle AI 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 esta 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 AI 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 de Linguagem SQL do Oracle AI 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 AI Database Globalization Support Guide.

Valor Padrão: Gregorian Exemplo 7-6 mostra como a definição de NLS_CALENDAR como '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 esta 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 esta 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 ",." (caractere decimal é vírgula e o separador de grupo é período), altere-o:

    ALTER SESSION SET NLS_NUMERIC_CHARACTERS=",.";
  3. Execute esta 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 esta 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 esta 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 esta 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 AI 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. Criar tabela para palavras em Espanhol:

    CREATE TABLE temp (name VARCHAR2(15));
  2. Preencher Tabela com Algumas Palavras do 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 esta 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 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. *Executar esta 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: