Bonjour

J'ai un problème pour écrire un regexp dans une requete pour une proc stock PLSQL :

j'ai une requête select qui a le critère suivant (simplifié) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
WHERE REGEXP_LIKE ( TITRE , '^.+' || replace ( (NR.[NUM]),'[NUM]','[:digit:]+' )  || '.+$' )
L'expression regulière est la suivante après le replace :

Cette requête est censée me retrouver ce titre :

PARA(1251\.)DROOPY S (NR.5) GLUCKSBRINGER REDIF 2564
Or ça ne fonctionne pas...

Elle fonctionnait avec le critère suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
WHERE TITRE LIKE ( '%' || replace ( (NR.[NUM]),'[NUM]','%' )  || '%' )
Mais celui-ci matchait aussi les cas ou l'expression (NR.[NUM]) était en fin de chaîne...

Je me demandais si la cause de ce problème n'était pas les parenthèses, qui sont un caractère utilisé par les reg_exp. Mais apparemment même si je les enlève du titre et de l'expression recherchée ça ne fonctionne toujours pas...

Sans doute est-ce le point ? Comment puis-je faire en sorte qu'il soit considéré comme un caractère et non comme un élément de la regexp ?

Auriez-vous une idée de solution ?

Merci à vous