SQL Telefon Numarası Formatı Düzenleme
Bazı durumlarda gerek uygulama katmanından gerek veri aktarımından kaynaklanan veri tabanına kayıt olan telefon numarası formatı düzgün olmayabilir. Bu durumda MS SQL de bulunan telefon alanın 0555 555 55 55 gibi düzgün bir formatta görünmesi veya güncellemesi için her defasında sorgu yazmak yerine aşağıdaki gibi kullanıcı tanımlı scalar bir fonksiyon hazırlanabilir.
CREATE FUNCTION [dbo].[FN_TELEFONFORMAT] (@TELEFONNO CHAR(50))
RETURNS CHAR(50) AS
BEGIN
DECLARE @SONUC CHAR(20)
DECLARE @UZUNLUK INTEGER
DECLARE @GIRDI CHAR(50)
DECLARE @TELNO CHAR(50)
SET @GIRDI = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE (REPLACE(REPLACE(REPLACE(@TELEFONNO ,'(',''),')',''),'-',''),' ',''),'*',''),'+',''),'[',''),']',''),'\',''),'/',''),'_','')
SET @UZUNLUK=LEN(@GIRDI)
IF @UZUNLUK>=10
BEGIN
SET @TELNO=RIGHT(RTRIM(@GIRDI),10)
SET @SONUC='0'+LEFT(@TELNO,3)+' '+SUBSTRING(@TELNO,4,3)+' '+SUBSTRING(@TELNO,7,2) +' '+SUBSTRING(@TELNO,9,2)
END
ELSE
BEGIN
SET @SONUC=@TELEFONNO
END
RETURN @SONUC
END
--Fonksiyonun kullanılışı
SELECT [dbo].[FN_TELEFONFORMAT] ('0-(555)111 11 -11'')
Fonksiyonun sonucu : 0555 111 11 11