Ren gissning:
- Filen är
utf-8kodad (eller någon annan kodning, SQL-Server 2008 kan inte läsas inbyggt).- Du måste veta att SQL-Server är ganska begränsad med filkodningar.
CHAR(ellerVARCHAR) ärextended ASCII 1-byte encodingochNCHAR(ellerNVARCHAR) ärUCS-2 2-byte encoding(vilket är nästan identiskt medUTF-16). - Med SQL-Server 2016 (och SP2 för v2014) introducerades ytterligare stöd, särskilt för
utf-8. - Försök att öppna din XML med en lämplig editor (t.ex. anteckningar++) och försök ta reda på filens kodning. Försök att spara detta som "unicode / UCS-2 / utf-16" och försök importera igen.
- Försök att använda din import med
CLOBistället förBLOB. Läser filen som binär LargeObject tar byten en efter en. SQL-Server kommer att försöka läsa dessa byte som sträng med fast storlek per tecken. En karaktär LOB kan fungera under speciella omständigheter. - Kontrollera de två första byten för en
BOM(byteordningsmärke)
- Du måste veta att SQL-Server är ganska begränsad med filkodningar.
- Det finns en del smuts i din XML
- Öppna filen med en HEX-editor och försök hitta konstiga koder
- Din kod bearbetar filens innehåll i en dynamiskt skapad sats.
- I sådana fall stöter du ibland på trunkering eller strängbrytande citattecken
- Allmänt tips:
- Om du importerar data och du förväntar dig problem rekommenderas det starkt att du använder en tvåstegsmetod
- Läs din fil i en tolerant mellanställningstabell (med
NVARCHAR(MAX)eller till och medVARBIANRY(MAX)målkolumner) och försök fortsätta med detta. - Det kan vara nödvändigt att använda ett annat verktyg för att ändra din fil innan importen.