NLS_LANGUAGE - Ora10g/CentOS

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
bapocalypse
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 14
Registrado em: Seg, 12 Dez 2005 10:31 am
Localização: Belo Horizonte - MG
Contato:
Bruno Apocalypse

Informações do Ambiente:
* Versão do Oracle: 10.0.2.1
* Sistema Operacional: Linux CentOS 5.4

Pessoal, estou criando uma nova base no Oracle instalado no linux CentOS. Porém, ela (database) insiste em ficar com o NLS_LANGUAGE = AMERICAN. Ou seja, não consigo utilizar acentuação.

Já alterei a session e nada. Impressionante. Já criei várias vezes e não estou conseguinto. Alguém poderia dar uma luz?

Falows!!!
[/b]
diegopedrao
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 164
Registrado em: Sex, 22 Ago 2008 12:28 pm
Localização: SP

Bapo,

já tentou mudar o Character Set do banco?

ALTER DATABASE "NOME_DATABASE" CHARACTER SET WE8ISO8859P1;
ALTER DATABASE "NOME_DATABASE" NATIONAL CHARACTER SET WE8ISO8859P1;
ALTER DATABASE "NOME_DATABASE" CHARACTER SET INTERNAL_USE WE8ISO8859P1;

Att,

Diego Monteiro
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

Selecionar tudo

SQL> select * from nls_session_parameters;

PARAMETER                      VALUE
------------------------------ ----------------------------------------
NLS_LANGUAGE                   BRAZILIAN PORTUGUESE
NLS_TERRITORY                  BRAZIL
NLS_CURRENCY                   R$
NLS_ISO_CURRENCY               BRAZIL
NLS_NUMERIC_CHARACTERS         ,.
NLS_CALENDAR                   GREGORIAN
NLS_DATE_FORMAT                DD/MM/RR
NLS_DATE_LANGUAGE              BRAZILIAN PORTUGUESE
NLS_SORT                       WEST_EUROPEAN
NLS_TIME_FORMAT                HH24:MI:SSXFF
NLS_TIMESTAMP_FORMAT           DD/MM/RR HH24:MI:SSXFF
NLS_TIME_TZ_FORMAT             HH24:MI:SSXFF TZR
NLS_TIMESTAMP_TZ_FORMAT        DD/MM/RR HH24:MI:SSXFF TZR
NLS_DUAL_CURRENCY              Cr$
NLS_COMP                       BINARY
NLS_LENGTH_SEMANTICS           BYTE
NLS_NCHAR_CONV_EXCP            FALSE

17 rows selected

SQL> select * from nls_database_parameters;

PARAMETER                      VALUE
------------------------------ ----------------------------------------
NLS_NCHAR_CHARACTERSET         AL16UTF16
NLS_LANGUAGE                   AMERICAN
NLS_TERRITORY                  AMERICA
NLS_CURRENCY                   $
NLS_ISO_CURRENCY               AMERICA
NLS_NUMERIC_CHARACTERS         .,
NLS_CHARACTERSET               WE8ISO8859P1
NLS_CALENDAR                   GREGORIAN
NLS_DATE_FORMAT                DD-MON-RR
NLS_DATE_LANGUAGE              AMERICAN
NLS_SORT                       BINARY
NLS_TIME_FORMAT                HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY              $
NLS_COMP                       BINARY
NLS_LENGTH_SEMANTICS           BYTE
NLS_NCHAR_CONV_EXCP            FALSE
NLS_RDBMS_VERSION              10.2.0.4.0

20 rows selected
1- você deve ver que a sua sessão ganha valores diferentes do banco, de acordo com as configurações da máquina. você pode usar triggers on logon para alterar as configurações deixando como você quiser.

2- você n consegue acentuar onde? direto no bd ou por qual aplicação?
bapocalypse
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 14
Registrado em: Seg, 12 Dez 2005 10:31 am
Localização: Belo Horizonte - MG
Contato:
Bruno Apocalypse

Não consigo acentuar no dado mesmo. Um exmeplo simples:

Selecionar tudo

select 'não' from dual;

N?O
--------------
n?o

Entendeu!?

Falows!!!
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

pode ser seu client, vai no regedit e procura por:

Abrir o o editor de registro do windows:
Regedit

Procure pela chave mais próxima como o exemplo abaixo e altere a variavel NLS_LANG

Selecionar tudo

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient10g_home4]
"NLS_LANG"="AMERICAN_AMERICA.WE8ISO8859P1"
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

tente alterar para isso..

Selecionar tudo

NLS_LANG=BRAZILIAN PORTUGUESE_BRAZIL.WE8MSWIN1252
bapocalypse
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 14
Registrado em: Seg, 12 Dez 2005 10:31 am
Localização: Belo Horizonte - MG
Contato:
Bruno Apocalypse

Moçada, obrigado pela ajuda. No Linux, executando o comando

Selecionar tudo

export NLS_LANG="BRAZILIAN PORTUGUESE_BRAZIL.WE8ISO8859P1"
funciona perfeito.

Porém, no meu client (windows) ainda não consigo. Já tentei alterar pelo registro como demonstrado acima e nada.

Qual a origem deste problema? Deveria eu instalar o Oracle no linux em português????

Falows![/b]
bapocalypse
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 14
Registrado em: Seg, 12 Dez 2005 10:31 am
Localização: Belo Horizonte - MG
Contato:
Bruno Apocalypse

Bem.... continuando com os testes, achei uma luz no final do tunel.

Meu OS está em inglês. Desinstalei meu client, alterei a propriedade no:

CONTROL PANEL -> Regional and Language Options -> [Aba] Administrative

e alterei meu "Current language for non-Unicode programs:

para PORTUGUESE (BRAZIL).


Aparentemente funcionou. MAS vou continuar estudando isto, pois minha aplicação não pode ficar preso a esta variável e nem posso ficar alterando instalações.

Falows!!!
Responder
  • Informação