Ren gæt:
- Filen er
utf-8
kodet (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 encoding
ogNCHAR
(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
CLOB
i 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.