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 Connection
função "Suggest Types" do na coluna que está falhando. Isso fez recomendar oSingle byte signed int
tipo 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 Column
para 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 Conversion
para 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_STR
valor 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=1
adicionado à 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
?
Amount
coluna. Faça uma captura de tela e atualize sua pergunta com esta imagem.