Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Le texte était tronqué ou un ou plusieurs caractères n'avaient pas de correspondance dans la page de code cible Lors de l'importation à partir d'un fichier Excel

Je suppose que vous essayez d'importer ceci en utilisant une source Excel dans la boîte de dialogue SSIS ?

Si tel est le cas, le problème est probablement que SSIS échantillonne un certain nombre de lignes au début de votre feuille de calcul lorsqu'il crée la source Excel. Si dans la colonne [ShortDescription] il ne remarque rien de trop grand, il utilisera par défaut une colonne de texte de 255 caractères.

Ainsi, pour importer des données à partir d'une colonne qui contient des lignes avec de grandes quantités de données sans troncature, il existe deux options :

  1. Vous devez vous assurer que la colonne [ShortDescription] d'au moins une des lignes échantillonnées contient une valeur supérieure à 255 caractères. Une façon de faire est d'utiliser la fonction REPT(), par ex. =REPT('z', 4000), qui créera une chaîne de 4000 de la lettre 'z'.
  2. Vous devez augmenter le nombre de lignes échantillonnées par le pilote Jet Excel pour inclure une telle ligne. Vous pouvez augmenter le nombre de lignes échantillonnées en augmentant la valeur de TypeGuessRows sous HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel (ou si votre système est x64 alors sous le HKEY_LOCAL_MACHINE\SOFTWARE\wow6432node\Microsoft\Jet\4.0\Engines\Excel )clé de registre.

Vous pouvez voir plus d'informations sur ces deux liens :

Pour expliquer plus en détail, SSIS crée 3 objets dans les coulisses de l'assistant, un objet de source de données Excel, un objet de destination de table SQL et un opérateur de flux de données entre eux. L'objet source Excel définit les données source et existe indépendamment des deux autres objets. Ainsi, lors de sa création, l'échantillonnage que j'ai décrit est effectué et la taille de la colonne source est définie. Ainsi, au moment où l'opérateur de flux de données s'exécute et essaie d'extraire les données d'Excel pour les mettre dans votre tableau, il examine déjà une source de données limitée à 255 caractères.