Oracle - Echappement de caractères spéciaux


Pour certaines requêtes SQL, nous avons besoin de rechercher des chaînes de caractères contenant des caractères spéciaux tels que '%'
Dans l'exemple suivant, qui est faux, le besoin est de trouver les enregistrements contenant au milieu le caractère '%':
SELECT * 
FROM table 
WHERE champs LIKE '%%%';


Pour ce faire il faut savoir comment échapper (ou déspécialiser) les caractères spéciaux. Il faut commencer par donner une valeur au paramètre SQL ESCAPE (paramètre d'échapper les caractères) par exemple '^' :
SQL>SET ESCAPE ^


A partir de ce moment, le caractère '^' pourra servir à dé-spécialiser les caractères spéciaux. Pour reprendre notre exemple de façon correcte :
SELECT * 
FROM table 
WHERE champs LIKE '%^%%';
Cet article est régulièrement mis à jour par des experts sous la
direction de Jean-François Pillou, fondateur de CommentCaMarche
et directeur délégué au développement numérique du groupe Figaro.

A voir également

Ce document intitulé « Oracle - Echappement de caractères spéciaux » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.