1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| create function NomFichier(texte VARCHAR(255)) returns varchar(255)
begin
declare i int default 1 ;
declare taille int ;
declare c varchar(1) ;
declare resu varchar(255) ;
set taille = CHAR_LENGTH(texte) ;
while i <= taille do
set c = substr(texte from i for 1) ; -- extraction d'un caractère
set c = lower(c) ; -- passage en minuscule
case
when ord(c) between 224 and 229 then set c = 'a' ; -- àáâãäå
...
when ord(c) in (39, 146, 180) then set c = '-' ; -- apostrophes
end case ;
set resu = concat(resu, c) ;
set i = i + 1 ;
end while ;
while resu like '--' do
set resu = replace(resu, '--', '-') ; -- nettoyage des doubles tirets
end while ;
return resu ;
end ; |
Partager