Erro ao Exportar arquivo bcp para Banco Sql Server. String data, right truncation

Întrebare Erro ao Exportar arquivo bcp para Banco Sql Server. String data, right truncation

  • 17 iulie 2012 20:57
     
      Are cod

    Boa tarde. Estou com um problema para exportar um arquivo bcp, que foi importado de uma tabela e exporta-lo para outra tabela com estrutura identica.

    O arquivo bcp tem 18mil linhas, mesma quantidade de registro da tabela original, porém quando inicio uma rotina de exportação dessas 18 mil linhas para uma tabela B ele só copia 13.582 linhas, pois ele faz cargas de mil em mil e o milhar que um campo apresente este erro, ele pula pro próximo.

    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation

    BAT que importa os dados do bcp para o Banco

    @ECHO OFF
     
    Set Server=xxx.xxx.xxx.xxx
    Set Username=sa
    Set Password=*********
    Set Arquivo=c:\temp\tabela.bcp
    Set Log=c:\temp\tabela.log_exp
     
    ECHO Inicio do BCP...: %TIME%
    ECHO Aguarde a carga dos dados...
     
    bcp BANCO1.dbo.TABELA2 IN %Arquivo% -o %Log% -S%Server% -U%Username% -P%Password% -c
     
    ECHO Termino do BCP..: %TIME%
    ECHO Log no arquivo %Log%
     
    PAUSE
    

    Arquivo de Log:

    Starting copy...
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    1000 rows sent to SQL Server. Total sent: 1000
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    1000 rows sent to SQL Server. Total sent: 2000
    1000 rows sent to SQL Server. Total sent: 3000
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    1000 rows sent to SQL Server. Total sent: 4000
    1000 rows sent to SQL Server. Total sent: 5000
    1000 rows sent to SQL Server. Total sent: 6000
    1000 rows sent to SQL Server. Total sent: 7000
    1000 rows sent to SQL Server. Total sent: 8000
    1000 rows sent to SQL Server. Total sent: 9000
    1000 rows sent to SQL Server. Total sent: 10000
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    1000 rows sent to SQL Server. Total sent: 11000
    1000 rows sent to SQL Server. Total sent: 12000
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    1000 rows sent to SQL Server. Total sent: 13000
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    SQLState = 22001, NativeError = 0
    Error = [Microsoft][ODBC SQL Server Driver]String data, right truncation
    
    13582 rows copied.
    Network packet size (bytes): 4096
    Clock Time (ms.): total      235
    
    

    Preciso de ajuda.

    Grande abraço

Toate mesajele

  • 18 iulie 2012 13:56
     
     

    Rafael,

    Vamos por partes. Os dados estão sendo migrados?

    Você já verificou se o tamanho dos dados que estão sendo importados em uma das colunas não esta estourando a capacidade de armazenamento da tabela em algum campo?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

  • 18 iulie 2012 14:40
     
     

    Bom dia Junior.

    Quanto a pergunta se os dados estão sendo migrados, sim, estou tentando fazer um software de migração de dados e este passo é um prototipo para uma possivel solução, pois já fiz a aplicação de parametro e de arquitetura do projeto, agora estou investindo no bcp para fazer a parte de migração de tabelas.

    Como os dados vem de uma Tabela A para uma tabela B, sendo a tabela B uma cópia identica da estrutura  da A, porém sem nenhum dado armazenado, acredito que não não tem como estourar a capacidade de armazenamento da tabela, até porque depois do primeiro erro, o próximo milhar ele consegue inserir, então acredito que não teve erro de tamanho máximo atingido.

    Obrigado pelo apoio, estou com dificuldades...

  • 18 iulie 2012 14:53
     
     

    Rafael,

    Estranho, pois esta mensagem de erro, informando que a String esta sendo truncada, é justamente um indicador que o tamanho do campo esta sendo ultrapassado!!!

    A estrutura deste arquivo .bcp esta de acordo com a estrutura da tabela?

    Como foi importado os dados para o arquivo .bcp?

    Você já verificou as configurações no ODBC?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

  • 18 iulie 2012 15:06
     
      Are cod

    @ECHO OFF

    Set Server=XXX.XXX.XXX Set Username=sa Set Password=********** Set Arquivo=c:\temp\tabela.bcp Set Log=c:\temp\tabela.log_exp ECHO Inicio do BCP...: %TIME% ECHO Aguarde a carga dos dados... bcp BancoX.dbo.TabelaA OUT %Arquivo% -o %Log% -S%Server% -U%Username% -P%Password% -c ECHO Termino do BCP..: %TIME% ECHO Log no arquivo %Log% PAUSE

    Junior, acima segue a forma com o eu exportei os dados da tabelaA para o arquivo bcp
  • 18 iulie 2012 16:37
     
     

    Rafael,

    Você consegui abrir este arquivo .bcp no Excel e verificar a formatação do arquivo?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

  • 18 iulie 2012 17:27
     
     

    Oi Junior,

    Abri o arquivo bcp com o Excel, verifiquei os dados e não encontrei nada anormal. O arquivo está na formatação correta.

    Aproveito o post para agradece-lo, é uma imensa honra receber ajuda do grande Junior Galvão =) 

    grande abraço!


  • 19 iulie 2012 14:09
     
     

    Continuo com o mesmo problema nesta tabela.,

    Criei uma tabela menor com apenas 10 dados e a operação foi um sucesso! O que pode ser que está acusando erro para a massa de dado real?

    Abs

  • 20 iulie 2012 20:52
     
     
    Ainda não consigo evoluir neste problema! Alguma solução alternativa?