SQL Server’da The Data Types Ntext and Varchar Are Incompatible in The Equal to Operator Hatası

Herkese merhaba,

Bu yazıda sizlere SQL Server’da the data types ntext and varchar are incompatible in the equal to operator hatasından bahsedeceğim.

Bu hata NText veri tipi ile oluşturulmuş alanlarda where şartının eşittir operatörü ile kullanılarak arama yapılması sırasında ortaya çıkan bir hatadır. Konu ile ilgili örneği aşağıda görmektesiniz.

--Database oluşturma
CREATE DATABASE Ornek
GO

--Database seçilmesi
USE  Ornek
GO

--Tablo oluşturulması
CREATE TABLE TestTablo (Yazim NTEXT)
GO

--Tabloya veri aktarımı
INSERT INTO dbo.TestTablo
        ( Yazim )
VALUES  ( 'Yavuz Selim Kart SQL Server'  -- Yazim - ntext
          )

--Hatalı sorgu
SELECT * FROM dbo.TestTablo WHERE Yazim='Yavuz Selim Kart SQL Server'

--Hatalı sorgunun çözümü
SELECT Yazim
FROM TestTablo
WHERE CONVERT(NVARCHAR(MAX), Yazim) = N'Yavuz Selim Kart SQL Server'

Burada where şartı ile arama işlemi yapınca hata aldık. Ntext veri tipinde böyle bir hata alınıyor. Hatayı veri tipini Nvarchar(max)’a çevirerek çözdük. Ya da tablomuzdaki bu alanın veri tipini değiştirerek de çözebiliriz.

ALTER TABLE TestTablo
ALTER COLUMN Yazim NVARCHAR(MAX)
GO
--Bu şekilde doğru çalışmış oldu.
SELECT * FROM dbo.TestTablo WHERE Yazim='Yavuz Selim Kart SQL Server'

Ya da aşağıdaki gibi Like Operatörünü kullanarak da bu hatayı çözebiliriz.

SELECT *
FROM TestTablo
WHERE Yazim LIKE 'Yavuz Selim Kart SQL Server'
GO

Bu şekilde çözümleri mevcuttur.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

887 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!