9421: XML parsing: illegal xml character
SQL ServerNe demek?
SQL Server bir metni XML olarak ayrıştırırken izin verilmeyen (geçersiz) bir karakterle karşılaştı. XML tipine dönüştürme veya XML sütununa/değişkenine değer atama işlemi bu karakter nedeniyle başarısız oldu.
Neden olur?
Metinde XML 1.0'da yasak kontrol karakterleri (ör. 0x00-0x1F aralığındaki bazı karakterler), yanlış kodlama (encoding uyuşmazlığı), ya da başka bir kaynaktan gelen bozuk/temizlenmemiş veri. Genellikle CAST(... AS XML) veya XML sütununa INSERT sırasında ortaya çıkar.
Nasıl çözülür?
Metni XML'e dönüştürmeden önce geçersiz karakterlerden temizleyin. Kaynağın kodlamasını (UTF-8/UTF-16) hedefle uyumlu hale getirin; XML bildiriminde doğru encoding belirtin. Kontrol karakterlerini REPLACE/NCHAR ile ayıklayabilir ya da uygulama katmanında XML'i standart bir kütüphaneyle üretip doğrulayabilirsiniz. Ham metni saklamanız gerekiyorsa NVARCHAR(MAX) kullanmayı değerlendirin.
Aynı motorda diğer kayıtlar
- 3729Cannot DROP because it is being referenced by object
- 3961Snapshot isolation transaction failed because the object was modified by a DDL statement
- 1785Introducing FOREIGN KEY constraint may cause cycles or multiple cascade paths
- 15151Cannot find the object/principal because it does not exist or you do not have permission
- 4834You do not have permission to use the bulk load statement
- 10928Resource limit for the database has been reached (Azure SQL)
- 40544The database has reached its size quota (Azure SQL)