Ren gæt:
- Filen er
utf-8kodet (eller enhver anden kodning, SQL-Server 2008 kan ikke læse indbygget).- Du skal vide, at SQL-Server er ret begrænset med filkodninger.
CHAR(ellerVARCHAR) erextended ASCII 1-byte encodingogNCHAR(ellerNVARCHAR) erUCS-2 2-byte encoding(hvilket er næsten identisk medUTF-16). - Med SQL-Server 2016 (og SP2 til v2014) blev der introduceret noget yderligere support, især for
utf-8. - Prøv at åbne din XML med en passende editor (f.eks. notesblok++), og prøv at finde ud af filens kodning. Prøv at gemme dette som "unicode / UCS-2 / utf-16", og prøv at importere igen.
- Prøv at bruge din import med
CLOBi stedet forBLOB. Læser filen som binær LargeObject vil tage bytes én efter den næste. SQL-Server vil forsøge at læse disse bytes som strenge med fast størrelse pr. tegn. En karakter LOB kan fungere under særlige omstændigheder. - Tjek de første to bytes for en
BOM(byteordensmærke)
- Du skal vide, at SQL-Server er ret begrænset med filkodninger.
- Der er noget snavs i din XML
- Åbn filen med en HEX-editor og prøv at finde mærkelige koder
- Din kode behandler filens indhold i en dynamisk oprettet sætning.
- I sådanne tilfælde støder du nogle gange ind i trunkering eller strengbrydende anførselstegn
- Generelt tip:
- Hvis du importerer data, og du forventer problemer, anbefales det stærkt at bruge en 2-trins tilgang
- Læs din fil ind i en tolerant iscenesættelsestabel (med
NVARCHAR(MAX)eller enddaVARBIANRY(MAX)målkolonner) og prøv at fortsætte med dette. - Det kan være nødvendigt at bruge et andet værktøj til at ændre din fil før importen.