Pular para o conteúdo
  • Este tópico contém 4 respostas, 4 vozes e foi atualizado pela última vez 13 anos, 2 meses atrás por armandoveloso.
Visualizando 5 posts - 1 até 5 (de 5 do total)
  • Autor
    Posts
  • #104488
    armandoveloso
    Participante

      Pessoal,

      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 WE8ISO8859P1

      Da 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.WE8MSWIN1252

      Att.,
      Armando Veloso

      #104513
      joseniz
      Participante

        SQL> select ‘ÇÉÃÀ’ from dual;

        ‘???
        —-
        ????

        Onde o SQL*Plus foi executado no linux ou windows ?
        Me parece apenas configuração de NLS no cliente.

        #104525
        Fábio Prado
        Participante

          armandoveloso,

          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.WE8MSWIN1252
          

          Faça o teste e nos dê um retorno!

          []s

          Fábio Prado
          http://www.fabioprado.net

          #104527
          Victor 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
            Victor

            #104534
            armandoveloso
            Participante

              joseniz,

              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 WE8MSWIN1252

              Só não sei se isso causará outros problemas…

              Pessoal obrigado pela ajuda!!!
              Armando

            Visualizando 5 posts - 1 até 5 (de 5 do total)
            • Você deve fazer login para responder a este tópico.