Pular para o conteúdo
Visualizando 10 posts - 1 até 10 (de 10 do total)
  • Autor
    Posts
  • #81587
    souza
    Participante

      Tenho um bd 9i, e estou usando o exp do 9i p/ exportar. Ao tentar importar p/ um xe 10g com o imp do 10g tenho muitas mensagens de erro do tipo:

      . . importing table “TABELA”
      IMP-00019: row rejected due to ORACLE error 12899
      IMP-00003: ORACLE error 12899 encountered
      ORA-12899: value too large for column “SCHEMA”.”TABELA”.”COLUNA” (actual: 62, maximum: 60)
      Column 1 6

      Já verifiquei espaço nas tablespaces e nls_lang da máquina onde estou fazendo o imp. A base de origem vem do windows e vai para windows.

      Alguém tem alguma sugestão ?

      #81588
      souza
      Participante

        No NLS_DATABASE_PARAMETERS do bd que estou importando tenho o seguinte:

        NLS_LANGUAGE AMERICAN
        NLS_TERRITORY AMERICA
        NLS_CURRENCY $
        NLS_ISO_CURRENCY AMERICA
        NLS_NUMERIC_CHARACTERS .,
        NLS_CHARACTERSET AL32UTF8
        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.1.0

        #81590
        Ishii
        Participante

          Souza,

          Por mais estranho que possa parecer a mensagem informa que uma coluna de uma ou mais tabelas tem como valor por exemplo varchar2(60) e o dado está com 62…

          Tente importar primeiro sem as linhas (imp rows=n) e depois tente somente com as linhas…. veja se o erro aparece na segunda vez. Ou veja estas tabelas e verifique se realmente ocorre esta situação…

          Outro ponto seria verificar estas tabelas e quais os datatypes delas e se há alguma alteração no Oracle XE 10g. Não me recordo de nenhuma agora mas podemos verificar depois.

          []s Ishii

          #81600
          souza
          Participante

            ok. Importei com rows=n e importou sem erros. Agora posso utilizar o imp normalmente (imp system@xe file=arq.dmp log=arq.log fromuser=x touser=x commit=y buffer=500000 feedback=10000) ?

            Desde já obrigado

            #81601
            Ishii
            Participante

              Souza,

              Sim, com isso deve ficar mais fácil identificar o problema deste dado que parece ser maior que a coluna da tabela… se você quiser adicionar o ignore =y para que não fique sendo necessário a sua intervenção toda vez que surgir um problema (e deve surgir vários como objeto já existe no banco…)

              Outra dica seria desabilitar as triggers e chaves (Pk e Fk) pois isso agiliza a importação.

              []s Ishii

              #81602
              souza
              Participante

                Para desabilitar as pk e fk vc sugere constrains=n ? As triggers é triggers=n ?

                Desde já obrigado

                #81603
                Ishii
                Participante

                  Souza,

                  Na verdade se você fizer isso no import apenas não serão importados as constraints e acho que para triggers não tem um comando para não importar.

                  Basta entrar na sua BD sem nenhuma linha e fazer um script para desabilitar as Fk primeiro e depois as Pks e também as triggers. Já deixe feito também um script para habilitar as Pks primeiro depois as Fks e também as triggers.

                  []s Ishii

                  #81604
                  souza
                  Participante

                    O erro voltou a ocorrer exatamente nas mesmas tabelas. Vc saberia me dizer se a diferença de NLS_CHARACTERSET poderia ter alguma influência ? Ou de algum outro parâmetro abaixo ?

                    Banco de Origem

                    PARAMETER VALUE


                    NLS_LANGUAGE AMERICAN
                    NLS_TERRITORY AMERICA
                    NLS_CURRENCY $
                    NLS_ISO_CURRENCY AMERICA
                    NLS_NUMERIC_CHARACTERS .,
                    NLS_CHARACTERSET WE8MSWIN1252
                    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 9.2.0.1.0

                    Banco Destino

                    NLS_LANGUAGE AMERICAN
                    NLS_TERRITORY AMERICA
                    NLS_CURRENCY $
                    NLS_ISO_CURRENCY AMERICA
                    NLS_NUMERIC_CHARACTERS .,
                    NLS_CHARACTERSET AL32UTF8
                    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.1.0

                    Desde já obrigado

                    #81608
                    Ishii
                    Participante

                      Souza,

                      Acho que você matou a charada. WE8MSWIN1252 tem como característica o Single-Byte Encoding que seria basicamente cada caracter tem um byte. Já o AL32UTF8 é MultiByte Encoding onde um número variável de bytes formam um caracter… por isso a coluna tem 60 posições mas o dado tinha 62…

                      Para conhecimento geral:
                      WE8MSWIN1252 – MS Windows Code Page 1252 8-bit West European
                      AL32UTF8- Unicode 4.0 UTF-8 Universal character set

                      Será necessário alterar o characterset para esta importação.

                      []s Ishii

                      #81612
                      souza
                      Participante

                        Caro Ishii, consegui importar sem erro. Tive que fazer o seguinte:

                        Logado como sys/sysdba

                        O original era: AL32UTF8

                        update sys.props$
                        set value$ = ‘WE8ISO8859P1’
                        Where name = ‘NLS_CHARACTERSET’;

                        Porém após importar sem erros , rodei um script de select para criar os sinônimos e tive o seguinte erro :

                        ORA-06552:PL/SQL: Compilation unit analysis terminated ORA-06553: PLS-553:nome do conjunto de caracteres não é reconhecido.

                        Daí tive que fazer novamente

                        update sys.props$
                        set value$ = ‘AL32UTF8’
                        Where name = ‘NLS_CHARACTERSET’;

                        shutdown immediate
                        startup

                        Aí funcionou depois o select. Vou realizar alguns updates e qualquer coisa vou postar aqui . Obrigado pela ajuda Ishii

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