Erro ao Exportar arquivo bcp para Banco Sql Server. String data, right truncation
-
17 iulie 2012 20:57
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
Junior, acima segue a forma com o eu exportei os dados da tabelaA para o arquivo bcp@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
-
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!
- Editat de Rafael de Melo Barbosa 18 iulie 2012 17:32
-
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:52Ainda não consigo evoluir neste problema! Alguma solução alternativa?