Puras suposiciones:
- El archivo es
utf-8
codificado (o cualquier otra codificación, SQL-Server 2008 no puede leer de forma nativa).- Debe saber que SQL-Server está bastante limitado con las codificaciones de archivos.
CHAR
(oVARCHAR
) esextended ASCII 1-byte encoding
yNCHAR
(oNVARCHAR
) esUCS-2 2-byte encoding
(que es casi idéntico aUTF-16
). - Con SQL-Server 2016 (y SP2 para v2014) se introdujo más soporte, especialmente para
utf-8
. - Intente abrir su XML con un editor adecuado (p. ej., notepad++) e intente averiguar la codificación del archivo. Intente guardar esto como "unicode/UCS-2/utf-16" y vuelva a intentar la importación.
- Intenta usar tu importación con
CLOB
en lugar deBLOB
. Leyendo el archivo como binario LargeObject tomará los bytes uno tras otro. SQL-Server intentará leer estos bytes como una cadena con un tamaño fijo por carácter. Un personaje LOB podría funcionar en circunstancias especiales. - Verifique los primeros dos bytes para un
BOM
(marca de orden de bytes)
- Debe saber que SQL-Server está bastante limitado con las codificaciones de archivos.
- Hay algo de suciedad dentro de su XML
- Abra el archivo con un editor HEX e intente encontrar códigos extraños
- Su código procesa el contenido del archivo dentro de una declaración creada dinámicamente.
- En tales casos, a veces se encuentra con comillas truncadas o que rompen cadenas
- Sugerencia general:
- Si importa datos y espera problemas, se recomienda utilizar un enfoque de 2 pasos
- Lea su archivo en una tabla de preparación tolerante (con
NVARCHAR(MAX)
o inclusoVARBIANRY(MAX)
columnas de destino) e intente continuar con esto. - Puede ser necesario usar otra herramienta para cambiar su archivo antes de la importación.