Hata: The data types text and varchar are incompatible in the equal to operator içi Çözümü

Örnek hatalar; “The text, ntext, and image data types are invalid for local variables” veya “The data types text and varchar are incompatible in the equal to operator” şekilde hata alırsanız eğer bu durum girilen bir degeri, veri tipiyle uyuşmamasından kaynaklanıyor.


Örneğin Btomer adında tanımladığım değişkenin veri tipi text tanımlı. veri tabanının sorgulamaları yaparken standart tipiyle uyuşmadığın da hata alınır.

Hadi! Bir örnek yapalım. @TBL değişkenli bir tablo oluşturdum. “ColumnName” adlı sütunü veri tipi ise “Text” tanımladım.
Şimdi bir “Btomer” değişkeni “Varchar” veri tipini tanımladım. Sorguyu çalıştıralım.

DECLARE @TBL TABLE (ColumnName TEXT) 
DECLARE @Btomer VARCHAR(50) 

SELECT * FROM @TBL WHERE ColumnName = @Btomer

IF(@BTomer)='Test'
	Print 'Test Succesfully'

Hata! “The data types text and varchar are incompatible in the equal to operator” alındı. Dikkat ederseniz. İkisinin veri tipleri birbirinden farklı olmasından dolayı hata aldık.

SQL Veri tipi uyuşmazlığı çözümü

Çözüm: “=” operatörü yerine “LIKE” Operatorü tanımlamamız yeterli olacak.

WHERE ColumnName LIKE @Btomer

Çözüm: Sutunün veri tipini NVARCHAR veya VARCHAR(50) dönüştürerek sorgulayabiliriz.

WHERE CONVERT(VARCHAR(MAX),ColumnName) = @Btomer

İNCELEMEK İSTEYEBİLECEĞİNİZ YAZILARIM

Leave a Reply