2010-05-17 4 views
0

En utilisant uniquement les fonctionnalités intégrées de SQL Server 2000, quel est le meilleur moyen de gérer les caractères spéciaux. Je ne suis pas sûr si l'expression régulière pourrait être utilisée en utilisant purement des fonctionnalités intégrées? Je voudrais rechercher et remplacer les caractères spéciaux dans mes requêtes.sql server 2000: manipulation des caractères spéciaux TSQL

Merci

Répondre

1

Voici une fonction qui supprimera les caractères spéciaux en utilisant la plage de caractères ASCII. Attention: Assurez-vous de le tester et d'être satisfait de l'utilisation de l'UC avant de l'implémenter dans un environnement à fort volume.

Cette fonction modifiée de source-code.biz/snippets/mssql/1.htm par Christian d' Heureuse

CREATE FUNCTION dbo.RemoveSpecialChars (@s VARCHAR(256)) 
RETURNS VARCHAR(256) 
    WITH SCHEMABINDING 
BEGIN 
    IF @s is null 
     RETURN null 

    DECLARE @s2 varchar(256) 
    DECLARE @l int 
    DECLARE @p int 


    SET @s2 = '' 
    SET @l = len(@s) 

    SET @p = 1 

     WHILE @p <= @l 
     BEGIN 

      DECLARE @c int 
      SET @c = ascii(substring(@s, @p, 1)) 
      IF @c between 48 and 57 or @c between 65 and 90 or @c between 97 and 122 
      BEGIN 
        SET @s2 = @s2 + char(@c) 
      END 
      SET @p = @p + 1 
     END 


     IF LEN(@s2) = 0 
     BEGIN 
      RETURN null 
     END  

     RETURN @s2 

END 

+0

Gary, s'il vous plaît respecter ma paternité et indique que c'est une version modifiée de ma fonction à http://www.source-code.biz/ snippets/mssql/1.htm –

+0

Christian, je suis heureux de vous reconnaître comme source. –

2

Nested replace

REPLACE(REPLACE(REPLACE(value, '$', ''), '"', ''), ':', '') 

Vraiment, ce n'est pas quelque chose t-sql est bon à

1

Bien que cela puisse violer la définition de l'utilisation "des fonctionnalités intégrées SEULEMENT" , puisqu'elle repose sur WSH, la fonction décrite dans this posting est une façon d'obtenir des regexes dans SQL 2000, et pourrait être étendue pour supporter le remplacement etc. Bien que ce ne soit pas du TSQL pur, il ne devrait pas nécessiter de nouveaux logiciels ou extensions sur t Le serveur (bien que de nombreux administrateurs de bases de données verrouillent le processus stocké du script COM).

Sinon, un gbn a mentionné, la seule opération native TSQL disponible est un tas de REPLACE s.