Si quelqu'un utilise du texte Oracle (CTXSYS.CONTEXT
), je me demande comment gérer les entrées utilisateur lorsque l'utilisateur souhaite rechercher des noms pouvant contenir une apostrophe.Oracle Text: Comment désinfecter l'entrée utilisateur
Echapper à la 'semble fonctionner dans certains cas, mais pas pour à la fin du mot - s est dans la liste des mots d'arrêt, et semble donc être supprimé.
Nous changeons actuellement un texte simple de requête (par exemple de tout ce qui est juste des lettres) à %text%
, par exemple:
contains(field, :text) > 0
Une recherche de O'Neil œuvres, mais de Joe ne fonctionne pas.
Est-ce que quelqu'un qui utilise Oracle Text a traité ce problème?
Non en fait lié à la question. Les arguments de recherche Oracle Text sont définis à l'aide d'une grammaire spécifique et analysés par le moteur de recherche. (Un tas de procédures stockées, fondamentalement) Les instructions préparées n'aideront pas du tout. Les caractères spéciaux et les mots réservés doivent être échappés si l'API ne doit pas être présentée aux utilisateurs. – KarlP