juillet
2011
Dans les « Call Centers », une phase importante de la préparation d’une campagne d’appels sortant (Outbound calls) consiste à passer la table d’appels et plus précisément la colonne « Numéro de téléphone » dans une moulinette afin d’avoir des numéros de téléphones valides. Si la table d’appels contient un nombre important de faux numéros c’est sûr que la campagne ne sera pas fructueuse.
Voici une fonction SQL qui permet de nettoyer et de valider les numéros de téléphones.
D’abord il faut garder à l’esprit que le plan de numérotation est fonction des pays,des villes,du type de téléphone (mobile ou fixe),…
CREATE FUNCTION [dbo].[CleanAndCheckPhoneNumber]
(
@InputPhoneNumber VARCHAR(50)
)
– j'ai limité la longueur max du numero de téléphone à 13, cette limite peut changer selon le pays…
RETURNS CHAR(13)
AS
BEGIN
– Nettoyage de numero de phone
DECLARE @CleanPhoneNumber VARCHAR(50)
DECLARE @Position INTEGER
SET @CleanPhoneNumber = LTRIM(RTRIM(@InputPhoneNumber))
IF (SUBSTRING(@CleanPhoneNumber,1,1)) = '+'
SET @CleanPhoneNumber = REPLACE('00'+ SUBSTRING (@CleanPhoneNumber,2,LEN(@CleanPhoneNumber)),'(0)','')
ELSE
SET @CleanPhoneNumber = REPLACE(@CleanPhoneNumber,'(0)','')
SET @Position = PATINDEX('%[^0-9]%', @CleanPhoneNumber)
WHILE @Position > 0
BEGIN
SET @CleanPhoneNumber = STUFF(@CleanPhoneNumber, @Position, 1, '')
SET @Position = PATINDEX('%[^0-9]%', @CleanPhoneNumber)
END
–Vérification de la longueur du numero de phone, j'ai limité la longueur 13, cette limite peut changer selon le pays…
IF (LEN(@CleanPhoneNumber) > 13)
SET @CleanPhoneNumber = '' –Numero Invalide
RETURN @CleanPhoneNumber
END
Un exemple avec un numéro du genre +33 (0) 6 99 99 99 99
Exemple d'utilisation.
SELECT dbo.CleanAndCheckPhoneNumber ( '+33 (0) 6 99 99 99 99 ' )
–> Résultat : 0033699999999
Happy queries to all !
———————————–
Etienne ZINZINDOHOUE
———————————–