Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

XML Parsing - Karakter XML Ilegal (saat menjalankan prosedur tersimpan, menjalankan kueri prosedur tidak menghasilkan kesalahan)

Tebakan murni:

  • Berkasnya adalah utf-8 dikodekan (atau penyandian lainnya, SQL-Server 2008 tidak dapat membaca secara asli).
    • Anda harus tahu, bahwa SQL-Server agak terbatas dengan pengkodean file. CHAR (atau VARCHAR ) adalah extended ASCII 1-byte encoding dan NCHAR (atau NVARCHAR ) adalah UCS-2 2-byte encoding (yang hampir identik dengan UTF-16 ).
    • Dengan SQL-Server 2016 (dan SP2 untuk v2014) beberapa dukungan lebih lanjut diperkenalkan, terutama untuk utf-8 .
    • Coba buka XML Anda dengan editor yang sesuai (misalnya notepad++) dan coba cari tahu penyandian file. Coba simpan ini sebagai "unicode / UCS-2 / utf-16" dan coba impor lagi.
    • Coba gunakan impor Anda dengan CLOB bukannya BLOB . Membaca file sebagai biner LargeObject akan mengambil byte satu demi satu. SQL-Server akan mencoba membaca byte ini sebagai string dengan ukuran tetap per karakter. Sebuah karakter LOB mungkin bekerja dalam keadaan khusus.
    • Periksa dua byte pertama untuk BOM (tanda urutan byte)
  • Ada kotoran dalam XML Anda
    • Buka file dengan editor HEX dan coba temukan kode aneh
  • Kode Anda memproses konten file dalam pernyataan yang dibuat secara dinamis.
    • Dalam kasus seperti itu, terkadang Anda mengalami pemotongan atau tanda kutip
  • Petunjuk umum:
    • Jika Anda mengimpor data dan mengalami masalah, sangat disarankan untuk menggunakan pendekatan 2 langkah
    • Baca file Anda ke dalam tabel staging yang toleran (dengan NVARCHAR(MAX) atau bahkan VARBIANRY(MAX) kolom target) dan coba lanjutkan dengan ini.
    • Mungkin perlu menggunakan alat lain untuk mengubah file Anda sebelum mengimpor.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa yang setara dengan C# dari tipe data server sql geografi di .net framework 4.0?

  2. Bisakah saya terhubung ke SQL Server yang berada di luar jaringan saya?

  3. Bagaimana menghubungkan ke database dari Unity

  4. Perbedaan dua tanggal waktu di sql server

  5. Cara menggabungkan dua tabel dengan jumlah baris yang sama berdasarkan urutannya