SQL Recursive Quotes Temizleme
Sql server üzerine ekleme / güncelleme yaparken birçoğumuzun yaşadığı sorun olan yazı içeriğindeki ‘ (Tek Tırnak – Quotes) sorununu çözmek için genelde replace fonksiyonunu kullanırız.
Fakat içerikte yer alan Tek Tırnak ifadesini ” ile değiştir dedikten sonra bir sonraki güncellemede bu tırnak sayısı katlanarak önce 4 adet sonra da 8 olarak devam eder.
Aşağıdaki Sql fonksiyonu ile düzensiz hale gelen bu tırnak ifadelerini tek tırnak olarak replace edebilir hatta update ifadesi ile mevcut yapıda hatalı olan tüm alanları güncelleyebilirsiniz.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Burak ŞEKERCİOĞLU
-- Create date: 13.04.2022
-- =============================================
alter FUNCTION fn_QuoteFilter
(
@veri nvarchar(max)
)
RETURNS nvarchar(max)
AS
BEGIN
declare @retVal nvarchar(max)
declare @t table
(
Field nvarchar(max)
)
insert into @t (Field) values (@veri)
WHILE (select max(charindex('''''',Field)) from @t) > 0
update @t set Field = replace(Field,'''''','''')
select @retVal=Field from @t
return @retVal
END
GO