SQL Server’da NText ya da Text Alanındaki Değerlerin Replace Edilmesi

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.

493 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!