Pular para o conteúdo
  • Este tópico contém 8 respostas, 3 vozes e foi atualizado pela última vez 17 anos atrás por dnldll.
Visualizando 9 posts - 1 até 9 (de 9 do total)
  • Autor
    Posts
  • #85628
    dnldll
    Participante

      Boa tarde pessoal.

      Fizemos o export de uma base de dados Oracle 9 para outra na versão 10G.

      Os acentos dos campos varchar vieram com o simbolo ¿ .

      Já tentamos igualar o NLS_LANG dos servidores mas mesmo assim ocorreu um problema.

      Voces conhecem algo sobre o assunto?

      Obrigado!

      #85633
      Ishii
      Participante

        Olá,

        Como foi criado o Oracle 10g? Digo qual foi o caracterset utilizado? Isso dá diferença nestas migrações… Veja o caracterset do Oracle 9 e compare com o Oracle 10g, às vezes não para tratar estes acentos….

        []s Ishii

        #85644
        David Siqueira
        Participante

          Reforçando o pedido do Ishii, poste aqui pra nós os dois tipos de CHARACTERSET que estão tanto no seu banco 9i quanto no seu banco 10g.

          Abcs.

          David

          #85647
          dnldll
          Participante

            Boa tarde.

            Os dois bancos esta com NLS_LANG=AMERICAN_AMERICA.US7ASCII

            Apenas para completar o oracle origem é 9.2.0.5 esta em um servidor Sun Solaris, o destino é um orcle 10.2.0.4 HP UX.

            Obrigado!

            Abs

            #85649
            David Siqueira
            Participante

              Dnl
              Posta pra gente as variaveis de CHARACTERSET :

              SQL> select * from v$nls_parameters;

              PARAMETER VALUE


              NLS_LANGUAGE BRAZILIAN PORTUGUESE
              NLS_TERRITORY BRAZIL
              NLS_CURRENCY Cr$
              NLS_ISO_CURRENCY BRAZIL
              NLS_NUMERIC_CHARACTERS ,.
              NLS_CALENDAR GREGORIAN
              NLS_DATE_FORMAT DD/MM/RR
              NLS_DATE_LANGUAGE BRAZILIAN PORTUGUESE
              NLS_CHARACTERSET WE8MSWIN1252
              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_NCHAR_CHARACTERSET AL16UTF16
              NLS_COMP BINARY
              NLS_LENGTH_SEMANTICS BYTE
              NLS_NCHAR_CONV_EXCP FALSE

              Isso dos dois Databases. NLS_LANG é variavel de ambiente que pode ser mudado conforme necessidade.

              Abcs.

              David

              #85656
              dnldll
              Participante

                Boa noite pessoal.

                Segue o resultado dos selects

                O problema esta no NLS_NCHAR_CHARACTERSET correto?

                Oracle 9i
                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 US7ASCII
                NLS_CALENDAR GREGORIAN
                NLS_DATE_FORMAT DD-MON-RR
                NLS_DATE_LANGUAGE AMERICAN
                NLS_SORT BINARY
                NLS_TIME_FORMAT HH.MI.SSXFF AM

                PARAMETER VALUE


                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_NCHAR_CHARACTERSET UTF8
                NLS_RDBMS_VERSION 9.2.0.5.0

                Oracle 10G
                select * from nls_database_parameters;

                PARAMETER VALUE


                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_NCHAR_CHARACTERSET AL16UTF16
                NLS_RDBMS_VERSION 10.2.0.4.0

                Abs

                #85657
                Ishii
                Participante

                  Olá,

                  Então:

                  NLS_CHARACTERSET US7ASCII : Usa 7bits para armazenar cada caracter e padrão ASCII Americano (USA) ….

                  NLS_CHARACTERSET WE8ISO8859P1 : Usa 8bits para armazenar cada caracter e padrão Western European Norma ISO 8859 Paragrafo 1

                  Acho que para arrumar mesmo so manualmente…. tem uma documentação da Oracle para a conversão mas não garante conversão total correta, sempre tem uns ajustes a serem feitos….

                  Como o characterset é definido na criação do Banco de Dados… somente se criar nova instância com este characterset e realizar o import novamente…

                  []s Ishii

                  #85665
                  David Siqueira
                  Participante

                    Bom dia, exatamente como o Ishi disse, ha documentações que orientam com alterar manualmente, mais NÃO é SEGURO e nem GARANTIDO, a melhor opção é recriar uma instancia com o mesmo tipo de caracter set e refazer o seu import para que assim você possa evitar problemas futuros também.

                    Abcs.

                    David

                    #85666
                    dnldll
                    Participante

                      Obrigado pessoal!

                      Como a base de dados não é grande estamos pensando em rodar alguns updates para solucionar o problema.

                      Obrigado.

                      Abraços

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