Merhaba,
SQL Replace fonksiyonu kullanarak telefon maskesini kaldıracağız. Boşluk, virgül, parantez ve tırknak formatı silme işlemi yapacağız.
Veri tabanı telefon numara bilgisi veya bir metin içindeki özel karakter tutulurken özel karakteri kaldırmak için fonksiyon oluşturup işlemi rahatlıkla yapabiliriz.
ÖZEL KARAKTERLERİ KALDIRMA
CREATE FUNCTION fn_Telno(@TelefonNo NVARCHAR(20))
RETURNS NVARCHAR(20)
AS
BEGIN
SET @TelefonNo = REPLACE(REPLACE(REPLACE(REPLACE(@TelefonNo ,'(',''),')',''),'-',''),' ','')
RETURN @TelefonNo
END
Tablo veya değişken üzerinde kullanabilirsiniz. Örnek olması için değişken atarak fonksiyonu kullanıyorum.
DECLARE @Tel1 VARCHAR(50) = '(540)-111-11-22'
DECLARE @Tel2 VARCHAR(50) = '()- - - '
--KULLANIMI
SELECT dbo.[fn_Telno](@Tel1) AS TEL1, dbo.[fn_Telno](@Tel2) AS TEL2
Örneğin bir müşteri tablosunun telefon numaraları formatlıydı. formatsız görünmesini istiyorum ve sorgumu bu şekilde çalıştırabiliyorum.
SELECT AD,SOYAD,dbo.[fn_Telno](TelefonNo) FROM MUSTERI
kullanım da bu hatayı veriyor
Must declare the scalar variable “@Tel1”.
Merhaba, Fonksiyonu kullanırken yanlış veri girişi veya kullanımından ötürü hata almış olabilirsiniz. Yazımı güncelledim. Eğer aynı hatayı alıyorsanız sorguyu iletebilir misiniz.