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é) :
L'expression regulière est la suivante après le replace :
Code : Sélectionner tout - Visualiser dans une fenêtre à part WHERE REGEXP_LIKE ( TITRE , '^.+' || replace ( (NR.[NUM]),'[NUM]','[:digit:]+' ) || '.+$' )
Cette requête est censée me retrouver ce titre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ^.+(NR.[:digit:]+).+$
Or ça ne fonctionne pas...PARA(1251\.)DROOPY S (NR.5) GLUCKSBRINGER REDIF 2564
Elle fonctionnait avec le critère suivant :
Mais celui-ci matchait aussi les cas ou l'expression (NR.[NUM]) était en fin de chaîne...
Code : Sélectionner tout - Visualiser dans une fenêtre à part WHERE TITRE LIKE ( '%' || replace ( (NR.[NUM]),'[NUM]','%' ) || '%' )
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
Partager