sql >> Database teknologi >  >> RDS >> Sqlserver

Teksten var afkortet, eller et eller flere tegn matchede ikke målkodesiden ved import fra Excel-fil

Jeg går ud fra, at du prøver at importere dette ved hjælp af en Excel-kilde i SSIS-dialogen?

Hvis det er tilfældet, er problemet sandsynligvis, at SSIS prøver et vist antal rækker i begyndelsen af ​​dit regneark, når det opretter Excel-kilden. Hvis den i kolonnen [ShortDescription] ikke bemærker noget for stort, vil den som standard have en tekstkolonne på 255 tegn.

Så for at importere data fra en kolonne, der indeholder rækker med store mængder data uden trunkering, er der to muligheder:

  1. Du skal sikre dig, at kolonnen [ShortDescription] i mindst én af de samplede rækker indeholder en værdi på mere end 255 tegn. En måde at gøre dette på er at bruge REPT()-funktionen, f.eks. =REPT('z', 4000), hvilket vil skabe en streng på 4000 af bogstavet 'z'.
  2. Du skal øge antallet af rækker, der samples af Jet Excel-driveren for at inkludere en sådan række. Du kan øge antallet af samplede rækker ved at øge værdien af ​​TypeGuessRows under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel (hvis dit system er x64, så under HKEY_LOCAL_MACHINE\SOFTWARE\wow6432node\Microsoft\Jet\4.0\Engines\Excel )registreringsnøgle.

Du kan se mere information på disse to links:

For yderligere at forklare opretter SSIS 3 objekter bag kulisserne i guiden, et Excel-datakildeobjekt, et SQL-tabeldestinationsobjekt og en dataflowoperator mellem dem. Excel-kildeobjektet definerer kildedataene og eksisterer uafhængigt af de to andre objekter. Så når den er oprettet, er den prøveudtagning, jeg beskrev, udført, og kildekolonnens størrelse er indstillet. Så på det tidspunkt, hvor dataflowoperatøren udfører og forsøger at trække dataene fra Excel for at lægge dem i din tabel, kigger den allerede på en datakilde, der er begrænset til 255 tegn.



  1. Tjek de seneste nyheder om Microsoft Access, inklusive Access 2022!

  2. DevArts dotConnect for Oracle vs DataDirects ADO.NET-dataudbyder

  3. Ulovlig blanding af sammenstillinger (utf8_unicode_ci,IMPLICIT) og (utf8_general_ci,IMPLICIT) for operation '='

  4. Er det muligt at oprette en tabel med et variabelnavn i PostgreSQL?