Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

O texto estava truncado ou um ou mais caracteres não tinham correspondência na página de código de destino Ao importar do arquivo Excel


Suponho que você esteja tentando importar isso usando uma fonte do Excel na caixa de diálogo SSIS?

Nesse caso, o problema provavelmente é que o SSIS mostra algumas linhas no início de sua planilha quando cria a origem do Excel. Se na coluna [ShortDescription] não notar nada muito grande, o padrão será uma coluna de texto de 255 caracteres.

Portanto, para importar dados de uma coluna que contém linhas com grandes quantidades de dados sem truncamento, existem duas opções:
  1. Você deve se certificar de que a coluna [ShortDescription] em pelo menos uma das linhas de amostra contém um valor com mais de 255 caracteres. Uma maneira de fazer isso é usando a função REPT(), por exemplo. =REPT('z', 4000), que criará uma string de 4000 da letra 'z'.
  2. Você deve aumentar o número de linhas amostradas pelo driver Jet Excel para incluir tal linha. Você pode aumentar o número de linhas amostradas aumentando o valor de TypeGuessRows em HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel (se o seu sistema for x64, em HKEY_LOCAL_MACHINE\SOFTWARE\wow6432node\Microsoft\Jet\4.0\Engines\Excel )chave de registro.

Você pode ver mais informações nestes dois links:

Para explicar melhor, o SSIS cria 3 objetos nos bastidores do assistente, um objeto de fonte de dados do Excel, um objeto de destino de tabela SQL e um operador de fluxo de dados entre eles. O objeto de origem do Excel define os dados de origem e existe independente dos outros dois objetos. Então, quando ele é criado, a amostragem que descrevi é feita e o tamanho da coluna de origem é definido. Portanto, quando o operador de fluxo de dados é executado e tenta extrair os dados do Excel para colocar em sua tabela, ele já está analisando uma fonte de dados limitada a 255 caracteres.