miércoles, 25 de octubre de 2017

Función para Limpiar caracteres especiales SQL SERVER



CREATE FUNCTION [dbo].[LimpiarCaracteresEspeciales](@cadena varchar(max))
       RETURNS varchar(max)
BEGIN
       DECLARE @pos int,
                    @patron varchar(max);

       Set @patron = '%['+'!''"'+Char(150)+Char(10)+char(13)+Char(9)+Char(34)+char(38)+char(60)+char(62)+char(160)
                                  +char(161)+char(162)+char(163)+char(164)+char(165)+char(166)+char(167)+char(168)+char(169)
                                  +char(170)+char(171)+char(172)+char(173)+char(174)+char(175)+char(176)+char(177)+char(178)
                                  +char(179)+char(180)+char(181)+char(182)+char(183)+char(184)+char(185)+char(186)+char(187)
                                  +char(188)+char(189)+char(190)+char(191)+char(192)+char(193)+char(194)+char(195)+char(196)
                                  +char(197)+char(198)+char(199)+char(200)+char(201)+char(202)+char(203)+char(204)+char(205)
                                  +char(206)+char(207)+char(208)+char(209)+char(210)+char(211)+char(212)+char(213)+char(214)
                                  +char(215)+char(216)+char(217)+char(218)+char(219)+char(220)+char(221)+char(222)+char(223)
                                  +char(224)+char(225)+char(226)+char(227)+char(228)+char(229)+char(230)+char(231)+char(232)
                                  +char(233)+char(234)+char(235)+char(236)+char(237)+char(238)+char(239)+char(240)+char(241)
                                  +char(242)+char(243)+char(244)+char(245)+char(246)+char(247)+char(248)+char(249)+char(250)
                                  +char(251)+char(252)+char(253)+char(254)+char(255)+'.]%';

       SET @Pos = PATINDEX(@patron,@cadena)

       WHILE @Pos > 0 BEGIN
             SET @cadena = STUFF(@cadena, @pos,1,'')
             SET @Pos = PATINDEX(@patron, @cadena)
       END


       RETURN @cadena
END;


No hay comentarios:

Publicar un comentario

Comenta cualquier duda o recomendatorio.