No Oracle Database, os parâmetros NLS (National Language Support) determinam o comportamento específico da localidade no cliente e no servidor.
Esses parâmetros podem ser configurados em vários locais, como no nível do banco de dados, em um arquivo de parâmetros de inicialização, nas variáveis de ambiente, no nível da sessão e até mesmo em algumas funções.
Você pode verificar o valor dos parâmetros NLS com as visualizações a seguir.
Visualizações de desempenho dinâmico de NLS
As exibições de desempenho dinâmico são exibições especiais que são continuamente atualizadas enquanto um banco de dados está aberto e em uso. Essas visualizações contêm dados sobre um grande número de coisas, incluindo uso e alocação de memória, estados de arquivos, progresso de trabalhos e tarefas, estatísticas e métricas, execução de SQL, bem como parâmetros de sistema e sessão.
As seguintes visualizações de desempenho dinâmico podem ser usadas para retornar informações sobre parâmetros NLS:
V$NLS_PARAMETERS
mostra os valores atuais de vários parâmetros NLS.V$NLS_VALID_VALUES
lista os valores válidos para os quais vários parâmetros NLS podem ser definidos.
Aqui estão exemplos de cada visualização.
Os V$NLS_PARAMETERS
Visualizar
Aqui está um exemplo de consulta de
V$NLS_PARAMETERS
ver no meu sistema:SELECT * FROM V$NLS_PARAMETERS;
Resultado:
PARAMETER VALUE CON_ID __________________________ _________________________________ _________ NLS_LANGUAGE ENGLISH 3 NLS_TERRITORY AUSTRALIA 3 NLS_CURRENCY $ 3 NLS_ISO_CURRENCY AUSTRALIA 3 NLS_NUMERIC_CHARACTERS ., 3 NLS_CALENDAR GREGORIAN 3 NLS_DATE_FORMAT DD/MON/RR 3 NLS_DATE_LANGUAGE ENGLISH 3 NLS_CHARACTERSET AL32UTF8 3 NLS_SORT BINARY 3 NLS_TIME_FORMAT HH12:MI:SSXFF AM 3 NLS_TIMESTAMP_FORMAT DD/MON/RR HH12:MI:SSXFF AM 3 N LS_TIME_TZ_FORMAT HH12:MI:SSXFF AM TZR 3 NLS_TIMESTAMP_TZ_FORMAT DD/MON/RR HH12:MI:SSXFF AM TZR 3 NLS_DUAL_CURRENCY $ 3 NLS_NCHAR_CHARACTERSET AL16UTF16 3 NLS_COMP BINARY 3 NLS_LENGTH_SEMANTICS BYTE 3 BYTE 3 NLS_NCHAR_CONV>Os
V$NLS_VALID_VALUES
Visualizar
OV$NLS_VALID_VALUES
view lista os valores válidos para os quais os seguintes parâmetros NLS podem ser definidos:
NLS_LANGUAGE
NLS_SORT
NLS_TERRITORY
NLS_CHARACTERSET
Para dar uma ideia do tipo de dados contidos nessa visualização, aqui está uma consulta que retorna as 10 principais linhas:
SELECT * FROM V$NLS_VALID_VALUES
FETCH FIRST 10 ROWS ONLY;
Resultado:
O VALOR DO PARÂMETRO ESTÁ REMOVIDO CON_ID ____________ __________________ _______________ _________ IDIOMA AMERICANO FALSO 0 IDIOMA ALEMÃO FALSO 0 IDIOMA FRANCÊS FALSO 0 IDIOMA CANADENSE FRANCÊS FALSO 0 IDIOMA ESPANHOL FALSO 0 IDIOMA ITALIANO FALSO 0 IDIOMA HOLANDÊS FALSO NORWEG 0 IDIOMA SUECO FALSO 0 IDIOMA SUECO FALSO 0 IDIOMA FALSO 0
Portanto, esses valores podem ser usados sempre que um parâmetro NLS aceita um valor de idioma. Por exemplo, poderíamos fazer o seguinte:
ALTER SESSION SET NLS_LANGUAGE = 'AMERICAN';
Que define o
NLS_LANGUAGE
parâmetro para AMERICAN
. Para definir um valor diferente, podemos verificar o V$NLS_VALID_VALUES
view para ver quais idiomas são aceitos. Visualizações do Dicionário de Dados NLS
Você pode verificar os parâmetros NLS de sessão, instância e banco de dados consultando as seguintes visualizações de dicionário de dados:
NLS_SESSION_PARAMETERS
mostra os parâmetros NLS e seus valores para a sessão que está consultando a exibição. Ele não mostra informações sobre o conjunto de caracteres.NLS_INSTANCE_PARAMETERS
mostra os parâmetros atuais da instância NLS que foram definidos explicitamente e os valores dos parâmetros da instância NLS.NLS_DATABASE_PARAMETERS
mostra os valores dos parâmetros NLS para o banco de dados. Os valores são armazenados no banco de dados.
Como mencionado, os parâmetros NLS podem ser definidos em vários lugares. Cada escopo pode conter valores diferentes para um determinado parâmetro NLS de outro escopo. As visualizações de dicionário de dados acima permitem que você consulte cada escopo por seu valor. Os parâmetros de sessão NLS substituem os parâmetros de instância NLS. E os parâmetros da instância NLS substituem os parâmetros NLS do banco de dados.
Consulte Métodos de configuração de parâmetros NLS e suas prioridades para obter uma tabela descrevendo a ordem de precedência que cada escopo tem em relação aos outros.
Aqui está o que recebo quando consulto cada uma dessas visualizações no meu sistema:
SELECT * FROM NLS_SESSION_PARAMETERS;
SELECT * FROM NLS_INSTANCE_PARAMETERS;
SELECT * FROM NLS_DATABASE_PARAMETERS;
Resultado:
PARAMETER VALUE __________________________ _________________________________ NLS_LANGUAGE ENGLISH NLS_TERRITORY AUSTRALIA NLS_CURRENCY $ NLS_ISO_CURRENCY AUSTRALIA NLS_NUMERIC_CHARACTERS ., NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD/MON/RR NLS_DATE_LANGUAGE ENGLISH NLS_SORT BINARY NLS_TIME_FORMAT HH12:MI:SSXFF AM NLS_TIMESTAMP_FORMAT DD/MON/RR HH12:MI:SSXFF AM NLS_TIME_TZ_FORMAT HH12:MI:SSXFF AM TZR NLS_TIMESTAMP_TZ_FORMAT DD/MON/RR HH12:MI:SSXFF AM TZR NLS_DUAL_CURRENCY $ NLS_COMP BINARY NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CONV_EXCP FALSE 17 linhas selecionadas. PARAMETER VALUE __________________________ ___________ NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_SORT NLS_DATE_LANGUAGE NLS_DATE_FORMAT NLS_CURRENCY NLS_NUMERIC_CHARACTERS NLS_ISO_CURRENCY NLS_CALENDAR NLS_TIME_FORMAT NLS_TIMESTAMP_FORMAT NLS_TIME_TZ_FORMAT NLS_TIMESTAMP_TZ_FORMAT NLS_DUAL_CURRENCY NLS_COMP BINARY NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CONV_EXCP FALSE 17 rows selected. PARAMETER VALUE __________________________ _______________________________ NLS_RDBMS_VERSION 19.0.0.0.0 NLS_NCHAR_CONV_EXCP FALSE NLS_LENGTH_SEMANTICS BYTE NLS_COMP BINARY NLS_DUAL_CURRENCY $ NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIME_FORMAT HH.MI.SSXFF AM NLS_SORT BINARY NLS_DATE_LANGUAGE AMERICAN NLS_DATE_FORMAT DD-MON-RR NLS_CALENDAR GREGORIAN NLS_NUMERIC_CHARACTERS ., NLS_NCHAR_CHARACTERSET AL16UTF16 NLS_CHARACTERS ET AL32UTF8 NLS_ISO_CURRENCY AMERICA NLS_CURRENCY $ NLS_TERRITORY AMERICA NLS_LANGUAGE AMERICAN 20 linhas selecionadas.
Pegue o
NLS_LANGUAGE
parâmetro por exemplo. Isso está definido como AMERICAN
nos níveis de banco de dados e instância (como pode ser visto no NLS_DATABASE_PARAMETERS
e NLS_INSTANCWE_PARAMETERS
Visualizações). Mas o parâmetro de sessão (que pode ser visto no NLS_SESSION_PARAMETERS
view) usa ENGLISH
, que substitui as outras duas configurações.