Recherche avec un LIKE

Voici une recherche « standard » avec un LIKE :

SELECT * FROM table WHERE champ LIKE 'te_t%';

Cela retournera par exemple des lignes contenant texte et tester

% : n’importe quelles caractères (de 1 à n)

_ : n’importe quel caractère (un seul caractère)

 

Si l’on souhaite vraiment rechercher une chaîne de caractère contenant « _ », la solution est d’utiliser la clause ESCAPE de la manière suivante :

SELECT * FROM table WHERE champ LIKE 'te\_t%' ESCAPE '\';

Le caractère « \ » est alors identifié comme un caractère d’échappement (le caractère inconnu). Oracle va donc interpréter le « _ » comme devant exister dans la chaîne de caractères.

Cela retournera par exemple des lignes contenant tet_tt et te&_ts