TRANSLATE |
Traduction |
|---|---|
| Oracle Database SQL | Oracle version 6 ou supérieure |
Syntaxe
| translate(string1,string_to_replace,replacement_string) |
Paramètres
| Nom | Description |
|---|---|
| string1 | Ce paramètre permet d'indiquer la chaîne de caractères à remplacer avec des caractères d'un autre ensemble de caractères. |
| string_to_replace | Ce paramètre permet d'indiquer la sous-chaîne de caractères à rechercher. |
| replacement_string | Ce paramètre permet d'indiquer la sous-chaîne de caractères allant remplacer les correspondances trouvés. |
Description
Cette fonction permet d'effectuer le remplacer de certains caractères individuel par d'autres caractères individuel dans une chaîne de caractères.
Remarques
- La fonction TRANSLATE est utilisée pour remplacer chaque caractère individuel d'une chaîne par un autre caractère, en fonction de correspondances dans deux chaînes distinctes. Contrairement à la fonction REPLACE qui agit sur des sous-chaînes entières, TRANSLATE agit caractère par caractère, ce qui en fait un outil puissant pour des substitutions ciblées.
- Chaque caractère présent dans le paramètre string_to_replace est remplacé par le caractère correspondant à la même position dans le paramètre replacement_string. Si un caractère dans string_to_replace n'a pas de correspondant dans replacement_string, ce caractère sera simplement supprimé de la chaîne résultante.
- La fonction TRANSLATE est particulièrement utile pour nettoyer ou normaliser des données textuelles, comme par exemple remplacer des caractères accentués par leurs équivalents non accentués, ou encore pour supprimer des caractères indésirables d'une chaîne.
- Le nombre de caractères dans string_to_replace et dans replacement_string n'a pas besoin d'être identique. Si replacement_string est plus court, les caractères supplémentaires dans string_to_replace seront supprimés dans le résultat.
- La fonction est sensible à la casse, ce qui signifie que les majuscules et minuscules sont traitées différemment. Par exemple, remplacer "a" dans une chaîne ne remplacera pas un "A" majuscule, sauf si ce dernier est explicitement mentionné dans string_to_replace.
- L'utilisation de TRANSLATE peut être plus performante que des multiples appels à la fonction REPLACE lorsqu'il s'agit de remplacer plusieurs caractères différents dans une même chaîne, car tout se fait en une seule opération.
- La fonction ne modifie pas la chaîne d'origine, elle retourne une nouvelle chaîne modifiée, ce qui est conforme à la nature des fonctions SQL qui ne modifient jamais directement les données d'une colonne.
- Dans les cas où la chaîne à traiter est très longue ou les remplacements très nombreux, l'utilisation de TRANSLATE peut être optimisée en combinant avec d'autres fonctions Oracle, comme SUBSTR ou REGEXP_REPLACE pour des traitements plus complexes.
- La fonction peut aussi être utilisée pour retirer des caractères en définissant dans string_to_replace des caractères à supprimer sans leur fournir de correspondants dans replacement_string, ce qui est une technique pratique pour nettoyer des données.
- Une limitation importante est que la fonction TRANSLATE ne permet pas de remplacer une séquence de plusieurs caractères par une autre séquence, uniquement des remplacements un à un caractère par caractère.
- Cette fonction est disponible depuis la très ancienne version 6 d'Oracle, ce qui montre qu'elle est un outil fondamental pour la manipulation de chaînes dans les bases Oracle, toujours très utilisé malgré son ancienneté.
- Enfin, l'utilisation de TRANSLATE peut être combinée avec d'autres fonctions comme UPPER, LOWER ou TRIM pour améliorer la qualité des données textuelles traitées, en assurant une gestion plus complète des chaînes de caractères dans les requêtes SQL.
Voir également
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Lundi, le 11 mai 2015