8114: Error converting data type X to Y
SQL ServerNe demek?
Bir değer, bir veri türünden diğerine dönüştürülürken uyumsuzluk nedeniyle çevrilemedi. 245 hatasından farklı olarak bu, genellikle parametre/ifade düzeyinde tür dönüşümünün (ör. varchar'dan numeric'e) başarısız olmasıdır.
Neden olur?
Sayısal bir sütuna/parametreye sayısal olmayan ya da biçimi bozuk bir metin göndermek; ölçek/hassasiyet taşması; boş dize ('') değerini numeric'e çevirmeye çalışmak; ya da parametrelenmiş sorguda yanlış türde argüman geçmek. ORM'lerin ürettiği örtük dönüşümlerde sık görülür.
Nasıl çözülür?
Dönüştürülen değerlerin hedef türe uygun olduğunu doğrulayın. Güvenli dönüşüm için TRY_CONVERT / TRY_CAST kullanın; başarısızsa NULL döner ve WHERE ile ayıklayabilirsiniz. Parametre türlerini sütun türleriyle eşleştirin. Sorunlu satırları bulmak için ISNUMERIC/TRY_CAST ile veriyi tarayın; boş dizeleri temizleyin.
Aynı motorda diğer kayıtlar
- 40544The database has reached its size quota (Azure SQL)
- 40613Database is not currently available (Azure SQL)
- 102Incorrect syntax near 'token'
- 1204The instance of the SQL Server Database Engine cannot obtain a LOCK resource
- 3906Failed to update database because the database is read-only
- 15023User already exists in the current database
- 18452Login failed. The login is from an untrusted domain and cannot be used with Windows authentication