[DB2] recherche en ignorant les caractères spéciaux

recherche en ignorant les caractères spéciaux [DB2] - SQL/NoSQL - Programmation

Marsh Posté le 23-06-2004 à 09:00:31    

Salut,  
 
ma base de données est susceptible de contenir des caractères spéciaux (des accents par exemple).  
Si un champ contient "libertés", je voudrais qu'une recherche avec ("libertes" ) retourne l'enregistrement.
 
C'est en DB2 sous zOs.  
Il existe la fonction TRANSLATE qui permet de replacer des caractères par des autres sur un colonne.  
Ex SELECT TRANSLATE(monChamp,'aeeio',àéèîô').
Normalement le système devrait renvoyer : libertes mais on récupère libertas ou "liberte s" (avec un espace).  
 
Je pense que ça vient du fait que la base est en UTF-8 et que un caractère  "non spécial" prend moins de place qu'un caractère spécial.  
 
Note : j'ai trouvé cette fonction mais si vous avez une autre solution, je suis preneur.
Merci de votre aide.

Reply

Marsh Posté le 23-06-2004 à 09:00:31   

Reply

Marsh Posté le 24-06-2004 à 14:15:37    

un petit up, justin.

Reply

Marsh Posté le 18-03-2005 à 11:28:12    

Nestor a écrit :

Salut,  
 
ma base de données est susceptible de contenir des caractères spéciaux (des accents par exemple).  
Si un champ contient "libertés", je voudrais qu'une recherche avec ("libertes" ) retourne l'enregistrement.
 
C'est en DB2 sous zOs.  
Il existe la fonction TRANSLATE qui permet de replacer des caractères par des autres sur un colonne.  
Ex SELECT TRANSLATE(monChamp,'aeeio',àéèîô').
Normalement le système devrait renvoyer : libertes mais on récupère libertas ou "liberte s" (avec un espace).  
 
Je pense que ça vient du fait que la base est en UTF-8 et que un caractère  "non spécial" prend moins de place qu'un caractère spécial.  
 
Note : j'ai trouvé cette fonction mais si vous avez une autre solution, je suis preneur.
Merci de votre aide.


 
Essaie ca :
TRANSLATE(var1 TO "0,F" FROM " .$" ) [' ' devient  0 ]
                                                    ['.' devient ',']
                                                    [ $  devient  F ]
Ca devrait marcher, mais j'ai pas encore testé...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed