Pergunta

Então, eu estou tentando fazer uma inserção em massa com SSIS e continuamente obter:

"Microsoft SQL Native Client" HRESULT: 0x80004005 Descrição: "String ou dados binários serão truncados"

Mesmo que eu já tenho uma conversão de dados para cada coluna para o mesmo tipo exato como a tabela que as linhas estão sendo inserido. Eu usei uma vista e os olhares de dados como suposto pouco antes da DB inserção etapa. Ainda obter o erro.

Em seguida fui para estúdio de gerenciamento de servidor SQL e configurar uma consulta de inserção para essa tabela condenado e ainda obter o mesmo erro de truncamento. Então eu fiz um conjunto ANSI_WARNINGS OFF ea inserção funciona olhares de dados boa na tabela. Agora, quando eu tentar excluir esta linha eu recebo o erro de truncamento.

A minha pergunta além de qualquer insumo básico para a situação é como posso desligar as ANSI_WARNINGS dentro SSIS para que a carga a granel pode ir embora?

Foi útil?

Solução 4

Acontece que no SSIS você pode configurar o destino OLE DB com o "acesso a dados Modo> Tabela ou vista: Rápido Mode". Quando escolhi essa configuração a inserção em massa passou sem quaisquer avisos ou erros e os olhares de dados perfeita no banco de dados. Não sei o que essa mudança fez exatamente, mas ele trabalhou e depois de 16 horas em um SSIS inserção Estou feliz com os resultados.

Obrigado pelas sugestões.

Outras dicas

Parece que você tem uma coluna que é estreita demais para aceitar os dados que você está enviando.

Você pode verificar se este é ou não é o caso?

Eu tive um problema muito semelhante surgem com frequência enquanto estávamos pregar para baixo um esquema com um terceiro.

Você pode selecionar um LEN de todas as colunas na exibição? Isso poderia ajudar a encontrar o problema.

Além disso, a única maneira que eu encontrei é imprimir um relatório dos comprimentos reais das colunas de dados fonte.

Parece que você tem uma linha (possivelmente mais, mas ele só tem um!) Onde seu valor de dados excede o comprimento das colunas da tabela. Fazendo uma conversão de dados para o tipo mais curto irá mover o erro ao que transformar faz a conversão do Destino. O que eu recomendo é a criação de um destino de arquivo simples, e amarrando a saída de erro de suas transformações para ele. Alterar o resultado de erro para 'Redirect Row'. Isso permitirá que todas as linhas válidas para percorrer, e fornecer-lhe uma cópia do (s) a linha que estão a ficar truncado para você lidar manualmente.

Existem gatilhos na tabela que você está inserindo em? Em seguida, o erro pode vir de uma ação que o gatilho preciso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top