Bonjour,
J'utilise la fonction regexp_like dans une requête SQL pour rechercher dans une table des lignes dont un champ a une certaine forme. Cela marche bien.
Ex:
Ca marche bien et je retrouve mes platanes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Table T_FORET(ESPECE varchar2(50), APPELLATION varchar2(80)) (('platane', 'Arbre platane'), ('platane jaune', 'Arbre platane jaune'), ('assimilé platane', 'Arbre assimilé platane'), ('chene(noble)', 'Arbre chene(noble)'))... select * from T_FORET where regexp_like (APPELLATION , 'platane');
Je complexifie en utilisant un champ dans l'expression régulière. Je veux que l'appellation commence par "Arbre", suivi de l'ESPECE
Et là pour les platanes ça marche mais pas pour le 'chene(noble)' car la parenthèse "(" dans le champ ESPECE est interprété par la fonction regexp_like.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select * from t_foret where regexp_like (APPELLATION , '^Arbre '||ESPECE );
Pour une seule lettre je peux utiliser le "\" pour éviter l'interprétation et prendre un "(" littéralement en cherchant "\(".
Ma question est:
Dans l'expression régulière '^Arbre '||ESPECE y-a-t-il moyen que le champ ESPECE ne soit pas traité par regexp_like comme expression régulière mais comme un littéral non interprété ?
J'ai essayé de l'enclore avec des ", ', { à tout hasard mais en vain.
Si cela parle à quelqu'un...
Pozzo
Partager