Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Анализ на XML - Незаконен XML символ (при изпълнение на съхранена процедура, изпълняваните заявки на процедура не водят до грешки)

Чисто предположение:

  • Файлът е utf-8 кодирано (или всяко друго кодиране, SQL-Server 2008 не може да чете естествено).
    • Трябва да знаете, че SQL-Server е доста ограничен по отношение на файловите кодировки. CHAR (или VARCHAR ) е extended ASCII 1-byte encoding и NCHAR (или NVARCHAR ) е UCS-2 2-byte encoding (което е почти идентично с UTF-16 ).
    • С SQL-Server 2016 (и SP2 за v2014) беше въведена допълнителна поддръжка, особено за utf-8 .
    • Опитайте да отворите своя XML с подходящ редактор (напр. notepad++) и опитайте да разберете кодирането на файла. Опитайте да запазите това като "unicode / UCS-2 / utf-16" и опитайте отново импортирането.
    • Опитайте да използвате импортирането си с CLOB вместо BLOB . Четене на файла като двоичен LargeObject ще вземе байтовете един след друг. SQL-Server ще се опита да прочете тези байтове като низ с фиксиран размер на знак. Характерса LOB може да работи при специални обстоятелства.
    • Проверете първите два байта за BOM (маркировка за ред на байтовете)
  • Има малко мръсотия във вашия XML
    • Отворете файла с HEX-редактор и се опитайте да намерите странни кодове
  • Вашият код обработва съдържанието на файла в рамките на динамично създаден израз.
    • В такива случаи понякога се сблъсквате с отрязване или прекъсване на низове
  • Общ съвет:
    • Ако импортирате данни и очаквате проблеми, силно се препоръчва да използвате подход в 2 стъпки
    • Прочетете файла си в толерантна междинна таблицаNVARCHAR(MAX) или дори VARBIANRY(MAX) целеви колони) и опитайте да продължите с това.
    • Може да е необходимо да използвате друг инструмент, за да промените файла си преди импортирането.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преобразуване на SQL2008 RDL файл в SQL2005

  2. Процедурата очаква параметър, който не е предоставен

  3. Как да получите всички таблици, които имат ограничение за първичен ключ, създадени в база данни на SQL Server - SQL Server / TSQL Урок 57

  4. Не може да се създаде низ за връзка за отдалечен работен плот за C# приложение

  5. Намерете най-близката дата в SQL Server