Comment puis-je compter le nombre d'occurrences du caractère -
dans une chaîne varchar2 ?
Exemple:
select XXX('123-345-566', '-') from dual;
----------------------------------------
2
Comment puis-je compter le nombre d'occurrences du caractère -
dans une chaîne varchar2 ?
Exemple:
select XXX('123-345-566', '-') from dual;
----------------------------------------
2
Voici:
select length('123-345-566') - length(replace('123-345-566','-',null))
from dual;
Techniquement, si la chaîne que vous souhaitez vérifier ne contient que le caractère que vous souhaitez compter, la requête ci-dessus renverra NULL ; la requête suivante donnera la bonne réponse dans tous les cas :
select coalesce(length('123-345-566') - length(replace('123-345-566','-',null)), length('123-345-566'), 0)
from dual;
Le 0 final dans coalesce
attrape le cas où vous comptez dans une chaîne vide (c'est-à-dire NULL, car length(NULL) = NULL dans ORACLE).
REGEXP_COUNT devrait faire l'affaire :
select REGEXP_COUNT('123-345-566', '-') from dual;
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.