Herkese merhaba,
Bu yazıda size SQL Server’da NText ya da Text alanındaki değerlerin Replace edilmesi hakkında bilgi vereceğim. SQL Server’da Text ya da NText veri tipine sahip sütunlarda REPLACE komutunu işletemiyoruz. Konu hakkındaki kodları aşağıda görmektesiniz.
--Tablo oluşturma
CREATE TABLE Tablomuz(
Deger1 NTEXT,
Deger2 TEXT
)
--Tabloya değer ekleme
INSERT INTO dbo.Tablomuz
( Deger1,Deger2 )
VALUES ('Burası ne kadar uzun bir değer alıyor',
'Kısa deger'
)
--Tabloyu listeleme
SELECT * FROM dbo.Tablomuz
--Replace etme işlemi (Hatalı ve çalışmıyor)
SELECT REPLACE(Deger1, 'uzun','kısa') FROM dbo.Tablomuz
SELECT REPLACE(Deger2, 'Kısa','uzun') FROM dbo.Tablomuz
/*
Msg 8116, Level 16, State 1, Line 21
Argument data type ntext is invalid for argument 1 of replace function.
Msg 8116, Level 16, State 1, Line 22
Argument data type text is invalid for argument 1 of replace function.
*/
--Replace etme işlemi (Doğru çalışıyor)
SELECT CAST(REPLACE(CAST(Deger1 AS NVARCHAR(MAX)), 'uzun', 'kısa') AS NTEXT)
FROM Tablomuz
SELECT CAST(REPLACE(CAST(Deger2 AS NVARCHAR(MAX)), 'Kısa', 'uzun') AS TEXT)
FROM Tablomuz
Replace işlemini yaparken Cast ile Nvarchar(max) haline çevirip sonrasında tekrar Ntext ya da Text değerine çeviriyoruz. Sonuç olarak başarılı bir şekilde Replace işlemi yapılmış oluyor.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.
