Deixe-me começar esclarecendo que esta não é uma pergunta duplicada , nem uma potencial duplicada para esse assunto. Eu tentei implementar todas as respostas para todas as variantes que já existem desse problema no StackOverflow e no DBA Stack Exchange, sem sorte.
Eu tenho lutado com esse problema nos últimos dois dias (trabalhando nele por aproximadamente 7 horas por dia) e, mesmo depois de pesquisar no Google, parece que ninguém mais está tendo a mesma variante exata do meu problema.
O que estou tentando fazer?
No SSIS, estou tentando ler de um arquivo CSV e inserir as linhas dele em um banco de dados OLE DB. Para isso, fiz a configuração mais simples de sempre, vista abaixo.
Flat File Source- lê as linhas CSV.Derived Column- atualmente não faz nada (está lá apenas para experimentar).Data Conversion- atualmente não faz nada (está lá apenas para experimentar).OLE DB Destination- armazena as linhas no banco de dados.
Quando tento executá-lo, ele para de ser executado no meu Destino OLE DB com a seguinte mensagem de erro.
Houve um erro com a coluna de entrada "Valor" (187) na entrada "Entrada de destino do OLE DB" (51). O status da coluna retornado foi: "O valor não pôde ser convertido devido a uma potencial perda de dados".
A coluna que falha ( Amount) atualmente é do tipo DT_STR. Parece ser do tipo que eu tenho mais fé agora.
O que eu tentei?
- Eu tentei usar a
Flat File Connectionfunção "Suggest Types" do na coluna que está falhando. Isso fez recomendar oSingle byte signed inttipo de dados.- Pára na minha fonte de arquivo simples .
- O erro está com falha na conversão de dados. A conversão de dados para a coluna "Valor" retornou o valor de status 2 e o texto de status "O valor não pôde ser convertido devido a uma possível perda de dados.".
- Eu tentei usar o
Derived Columnpara converter a coluna em umDT_I4.- Pára na minha coluna derivada .
- O erro está com falha na conversão de dados. A conversão de dados para a coluna "Valor" retornou o valor de status 2 e o texto de status "O valor não pôde ser convertido devido a uma possível perda de dados.".
- Eu tentei usar o
Data Conversionpara converter o valor da minha coluna para aDT_I4.- Pára na minha
Data Conversion. - O erro está com falha na conversão de dados. A conversão de dados para a coluna "Valor" retornou o valor de status 2 e o texto de status "O valor não pôde ser convertido devido a uma possível perda de dados.".
- Pára na minha
- Tentei alterar o tamanho do meu
DT_STRvalor na origem e no destino.- Pára na origem ou no destino, dependendo das configurações.
- Tentei conectar usando um conector de origem do Excel, com e sem o
IMEX=1adicionado à seqüência de conexão. Sem sorte
Meu senso de programação me diz que estou ferrado. Eu nunca nunca encontrou um problema tão grande para uma coisa tão simples.
E por que não posso simplesmente ignorar a "potencial" perda de dados? É realmente frustrante para dizer o mínimo.
Meu sistema
É uma máquina Windows Server 2008 R2 com o SQL Server 2008 instalado. A máquina em si é totalmente atualizada pelo Windows Update.
Amount?
Amountcoluna. Faça uma captura de tela e atualize sua pergunta com esta imagem.