Remplacement d'une sous-chaîne dans un champ
À partir de Firebird 2.1 il y a une fonction REPLACE.
Pour voir ce que ça donne dans une requête SELECT :
select chemin, replace(lower(chemin), 'c:\oldpath\', 'c:\newpath\') from mytable where lower(chemin) like 'c:\oldpath\%';
Par exemple cela donnerait ceci :
CHEMIN | REPLACE |
---|---|
c:\oldpath\dossier1 | c:\newpath\dossier1 |
c:\oldpath\dossier2 | c:\newpath\dossier2 |
c:\oldpath\dossier2\lettre.doc | c:\newpath\dossier2\lettre.doc |
Appliquer les changements avec une requête UPDATE :
update mytable set chemin = replace(lower(chemin), 'c:\oldpath\', 'c:\newpath\') where lower(chemin) like 'c:\oldpath\%';