REPLACE |
Remplace |
|---|---|
| Oracle Database SQL | Oracle 8i (version 8.1) ou supérieure |
Syntaxe
| replace(string1,string_to_replace[,replacement_string]) |
Paramètres
| Nom | Description |
|---|---|
| string1 | Ce paramètre permet d'indiquer l'expression contenant la chaîne de caractères à traiter |
| string_to_replace | Ce paramètre permet d'indiquer la chaîne de caractères à rechercher |
| replacement_string | Ce paramètre permet d'indiquer la chaîne de caractères de remplacement ou substitution |
Retour
| Valeur | Description |
|---|---|
| chaîne de caractères | Ces valeurs permettent d'indiquer le traitement demandé. |
Description
Cette fonction permet d'effectuer le remplacement de sous-chaîne de caractères par une autre sous-chaîne de caractères dans une chaîne de caractères.
Remarques
- La fonction REPLACE permet de substituer toutes les occurrences d'une sous-chaîne donnée dans une chaîne principale par une autre sous-chaîne, ce qui est très utile pour nettoyer ou modifier dynamiquement du texte dans une requête SQL.
- Le paramètre string1 représente la chaîne de caractères initiale dans laquelle la recherche et le remplacement vont être effectués. Il peut s'agir d'une colonne, d'une variable ou d'une expression littérale.
- string_to_replace est la sous-chaîne cible que la fonction va rechercher dans la chaîne principale. Si cette sous-chaîne n'est pas trouvée, la fonction retourne la chaîne originale inchangée.
- Le paramètre replacement_string est optionnel. S'il est omis, Oracle remplace toutes les occurrences de la sous-chaîne cible par une chaîne vide, ce qui revient à supprimer cette sous-chaîne.
- La fonction REPLACE est sensible à la casse : elle distingue les majuscules et minuscules dans la recherche, donc remplacer 'abc' ne changera pas 'ABC' dans la chaîne source.
- REPLACE peut remplacer plusieurs occurrences dans une même chaîne, mais elle ne permet pas de faire un remplacement conditionnel ou basé sur une expression régulière.
- Cette fonction est très efficace pour les petites modifications de texte simples, comme enlever des caractères indésirables, changer des séparateurs ou corriger des mots mal orthographiés dans une colonne.
- Pour des remplacements plus complexes ou basés sur des motifs, Oracle propose d'autres fonctions comme REGEXP_REPLACE qui utilise des expressions régulières, tandis que REPLACE reste limitée aux remplacements littéraux.
- REPLACE est une fonction déterministe, ce qui signifie que pour les mêmes entrées, elle renverra toujours le même résultat, ce qui facilite son intégration dans des expressions SQL ou des vues.
- Elle peut être utilisée dans des clauses SELECT, WHERE ou UPDATE, ce qui permet par exemple de filtrer ou mettre à jour des données textuelles directement dans la base de données.
- REPLACE ne modifie pas la chaîne originale mais retourne une nouvelle chaîne modifiée, ce qui garantit que la donnée source reste intacte, sauf si on l'utilise explicitement dans une clause UPDATE.
- En cas d'utilisation avec des colonnes de type CLOB (texte très volumineux), REPLACE fonctionne également, mais les performances peuvent dépendre de la taille des données manipulées.
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :
on obtiendra le résultat suivant :
| TEXT | RESULT |
| Replace("64.6",".",",") = | 64,6 |
| Replace("M. Maltais","M.","Monsieur") = | Monsieur Maltais |
Voir également
Article - Les géants de l'informatique - Oracle
Dernière mise à jour : Lundi, le 11 mai 2015