Bem, para saber o necessário sobre os params de NLS, vc vai ter que GOTO 
manuais Oracle de Globalization , mas o resumo do resumo é : no RDBMS Oracle, 
nós basicamente temos 3 itens de localização controláveis, a Linguagem (língua 
em que as msgs serão exibidas), o Território (o país/região do mundo a ser 
condiderada como 'local', para símbolos monetários e unidades, isso varia pra 
cada um) e o Characterset (o conjunto de codificação de caracteres : como vc 
deve saber, a tabela ASCII originalmente foi criada nos EUA e (entre outros 
motivos, também por limitações técnicas) só previa códigos para letras (sem 
acentos), números arábicos de 0 a 9 e alguns poucos sinais de pontuação usados 
no Inglês, então com a Globalização foi necessário adaptar e incluir 
caracteres, e como cada região (ou mesmo país) usa um conjunto diferente, 
vários arranjos - CODEPAGES - foram surgindo).... 
    Sobre a variável NLS_LANG : ela seta o valor que a sessão a conectar no 
database vai usar (pois o que está configurado no database, que vc descobre 
fazendo um select * from NLS_DATABASE_PARAMETERS; ) é o default, a ser aplicado 
apenas se a sessão não setar nada, e nesses manuais de Globalization vc vai 
descobrir que a variável pode conter as partes configuráveis : então, ao se 
setar NLS_LANG para AMERICAN_AMERICA.WE8ISO8859P1 vc está dizendo pro Oracle 
client que a sessão vai utilizar inglês Americano, notação monetária Aemricana 
e caracteres ASCII extras na codepage WE8ISO8859P1, é isso...

  Sendo assim , Não Faz muito Sentido vc ter um cliente de backup que configura 
um characterset X e uma Aplicação que configura um outro  Y : ambos deveriam 
estar usando o do database.... Talvez o que aconteceu aí é que , cfrme 
http://levipereira.wordpress.com/2010/11/20/difference-between-we8mswin1252-and-we8iso8859p1-characterset/
 nos lembra, antigamente o characterset default no Oracle era o WE8IOS8895P1, 
aí quando o pessoal montou o script de backup tascou esse como o setting da 
NLS_LANG : hoje em dia o default é o WE8MSWIN1252 , provavelmente o seu 
database deve estar usando esse, mas já que (tal como mostrado no link acima) 
quase todos os códigos para caracteres acentuados "batem" nos dois 
charactersets, o valor de WE8IOS8895P1 funciona (para caracteres em pt-br), 
então ninguém se preocupou em corrigir....
  
    []s

      Chiappa


--- Em oracle_br@yahoogrupos.com.br, Paulo Couto <paulopcto2002@...> escreveu
>
> Amigos, tenho um script de backup de banco montado por terceiro, que seta a 
> variavel NLS_LANG para SET NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1  antes de 
> iniciar um EXPDP.
>  
> Já uma outra empresa terceira instalou um sistema e nas estações tenho que 
> instalar o client do oracle e setar a variavel NSL_LANG no registro do 
> Windows paraAMERICAN_AMERICA.WE8MSWIN1252
>  
> Já o parametro NLS_LANGUAGE do meu banco 10.2.0.4 (windows) está setado com o 
> valor AMERICA.
>  
>  
> Gostaria de entender melhor este parâmetro e qual o problema de uma aplicação 
> usar um valor, já um backup usar outro, etc...
>  
> Abs,
>  
> Paulo.
> 
> [As partes desta mensagem que não continham texto foram removidas]
>


Responder a