- Este tópico contém 4 respostas, 4 vozes e foi atualizado pela última vez 13 anos, 2 meses atrás por
armandoveloso.
-
AutorPosts
-
24 de setembro de 2012 às 11:56 pm #104488
armandoveloso
ParticipantePessoal,
Tenho um banco 9i 32 bits, no windows server 2003 32 bits, estou fazendo um export dessa base e importando num 11G 64 bits, em Oracle Linux 6 64 bits.
O banco 11G esta com problema nos caracteres especiais (cedilha, acentos, etc). Ex.:
SQL> select ‘ÇÉÃÀ’ from dual;
‘???
—-
????Os dados nas tabelas importadas ficaram com esses problemas…
Comparei as seguintes informações nos 2 BDs e estão iguais:
select * from NLS_DATABASE_PARAMETERS;
select * from NLS_INSTANCE_PARAMETERS;
select * from NLS_SESSION_PARAMETERS;A unica coisa que acho estranho é o parâmetro abaixo na NLS_DATABASE_PARAMETERS:
NLS_CHARACTERSET WE8ISO8859P1Da igual nas duas bases, mas no banco de origem, que é Windows, olhei o REGDIT e la tem uma chave que mostra um conjunto de caracteres diferente:
NLS_LANG AMERICAN_AMERICA.WE8MSWIN1252Att.,
Armando Veloso27 de setembro de 2012 às 6:53 pm #104513joseniz
ParticipanteSQL> select ‘ÇÉÃÀ’ from dual;
‘???
—-
????Onde o SQL*Plus foi executado no linux ou windows ?
Me parece apenas configuração de NLS no cliente.27 de setembro de 2012 às 9:22 pm #104525Fábio Prado
Participantearmandoveloso,
Antes de iniciar o import ná maquina com LInux 64, configure a váriavel de ambiente NLS_LANG, conforme comando abaixo:
export NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252Faça o teste e nos dê um retorno!
[]s
Fábio Prado
http://www.fabioprado.net27 de setembro de 2012 às 9:59 pm #104527Victor Armbrust
Mestre- Exporta do 9i com WE8ISO8859P1
- Define o WE8MSWIN1252 no regedit antes de importar no 11g
- Usa o characterset WE8MSWIN1252 no banco que vc criou. (11g).
ai tenta de novo
abs
Victor28 de setembro de 2012 às 12:37 am #104534armandoveloso
Participantejoseniz,
Eu executei o select na propria maquina de banco, no linux, via sqlplus.
La na origem (no servidor windows) a resposta sai certinha…
fbifabio,
Boa sua dica! Não posso fazer hoje um novo import porque essa base é muito grande e no momento tem varios usuarios realizando testes nela.Mas ja vi que da certo, pois criei essa variavel no .bash_profile do usuario “oracle”(NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252) e inseri uns registros com acentuações e o cedilha e deu tudo certo!
Amanha no fim do expediente destruirei essa base atual e importarei uma nova já com essa variável nova criada, segunda-feira digo aqui os resultados!
So nao sei se seria melhor eu ja criar logo a base no DBCA com o character set “WE8MSWIN1252” ao inves do “WE8ISO8859P1”.
Eu estava criando essas bases no 11G usando o “WE8ISO8859P1” porque no 9i, nas propriedades da NLS_DATABASE_PARAMETERS, sai esse “valor” ao inves de “WE8MSWIN1252” (esse “WE8MSWIN1252” tem so no regedit do 9i …).
varmbrust,
Vc falou: “Define o WE8MSWIN1252 no regedit antes de importar no 11g”
Meu banco 11G onde faço o import é um linux…Mas tenho um servidor windows 2008 com o 11G que criei pra fazer uns testes, e agora criei uma base nova pelo DBCA e nele ja escolhi o character set “WE8MSWIN1252” ao inves de como antes, que na criacao da base eu escolhia o “WE8ISO8859P1″…
Na tabela NLS_DATABASE_PARAMETERS fica, claro, diferente do que ta na origem (9i), mas testes inserir registros com acentuação e saiu tudo certinho…
SQL> select * from nls_database_parameters;
PARAMETER VALUE
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET WE8MSWIN1252Só não sei se isso causará outros problemas…
Pessoal obrigado pela ajuda!!!
Armando - Exporta do 9i com WE8ISO8859P1
-
AutorPosts
- Você deve fazer login para responder a este tópico.