Ö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
- T-SQL – Satırları yan yana virgüle ile ayırarak yazdırma
- T-SQL – Pivot Nedir? Nasıl Kullanılır? (Örnek-1)
- T-SQL – İki tablo bir alana yazdırma UNION – UNION ALL Nasıl Kullanılır?
- T-SQL – Concat Fonksiyonu nasıl kullanılır? (İki string ifade birleştirme)
- T-SQL – Dosya/Doküman dizin/üst dizini alma
- T-SQL – Telefon Numara içindeki ( , – ‘ ) Formatı ve boşluk Kaldırma
- SQL Server – Veritabanında tüm tabloları sütun adını arama
- SQL Server – Veritabanında tüm stored procedure içeriği arama