Oui, mais tout dépend de la composition de la chaine.
S'il n'y a qu'un seul nombre (et pas plusieurs disséminés dans la chaine), un double translate fera l'affaire.
1er translate pour enlever tous les chiffres, et le second appliqué au résultat pour enlever tous les non-chiffres 
Ca doit ressembler à quelque chose comme ça :
TRANSLATE(v_chaine, '0' ||TRANSLATE(v_chaine, 'a0123456789','a'), '0')
Seul souci, si jamais tu as "coucou 123 il est 12h30 !", ça renverra 1231230
On peut vérifier autrement en L/Rtrim-ant les non-chiffres.
RTRIM(LTRIM(v_chaine, TRANSLATE(v_chaine, 'a0123456789', 'a')), TRANSLATE(v_chaine, 'a0123456789', 'a'))
Qui renverra la souschaine commençant au premier chiffre et finissant au dernier. On peut ensuite vérifier que cette souschaine ne contient que des chiffres
LTRIM(souschaine, '0123456789') IS NULL AND souschaine IS NOT NULL
Partager