IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration Oracle Discussion :

Recherche insensible aux accents


Sujet :

Administration Oracle

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2008
    Messages : 34
    Points : 39
    Points
    39
    Par défaut Recherche insensible aux accents
    Bonjour,
    j'ai fait quelques recherches mais je n'ai pas trouvé ce que je cherchais donc, je m'excuse d'avance si cette question a déjà été répondue. De plus, j'ai fait des tests avec ce que j'ai trouvé un peu partout mais rien ne correspond à ce que je cherche.

    J'aimerais savoir s'il est possible, dans Oracle, d'effectuer une recherche sur un champ et d'obtenir un résultat indépendamment des accents utilisés comme critère de recherche. Je m'explique.

    J'ai une table contenant les mots (café, cafè, cafe, cafë et cafê)

    Je fais une recherche sur le champ comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM ACCENT WHERE WORD LIKE '%cafe%';
    Et je désire obtenir tout les mot "cafe" indépendamment du "e" final, qui soit "é", "è" etc.

    Est-ce qu'il est possible de faire ça pour toute la base de données ou pour un schéma donnée ou est-ce que ça doit se faire du côté de l'application ou dans la construction des requêtes?

    Merci d'avance pour votre temps et vos connaissances.

  2. #2
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT * FROM ACCENT WHERE
    NLSSORT (WORD, 'nls_sort=binary_ai')LIKE '%cafe%';

  3. #3
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 077
    Points
    8 077
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    create table demo 
    as
    select cast(column_value as varchar2(20)) as mot 
    from table(sys.odcivarchar2list('café', 'cafè', 'cafe', 'cafë', 'cafê'));
     
    alter session set nls_sort=binary_ai;
    alter session set nls_comp=linguistic;
     
    select * from demo
    where mot like '%café%';

  4. #4
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 077
    Points
    8 077
    Par défaut
    Citation Envoyé par Garuda Voir le message
    ...NLSSORT (WORD, 'nls_sort=binary_ai') LIKE '%cafe%';
    Un tel test ne peut pas fonctionner, car NLSSORT renvoie un numérique, et non une chaîne de caractères.

  5. #5
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Au temps pour moi
    j'ai bétement recopié du PL/SQL sans me poser de questions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    IF ( UTL_RAW.cast_to_varchar2 (
                (NLSSORT (REGEXP_REPLACE (:new.obs_com, '[[:space:]|[:punct:]]*', ''), 'nls_sort=binary_ai'))) <>
                UTL_RAW.cast_to_varchar2 (
                   (NLSSORT (REGEXP_REPLACE (:old.obs_com, '[[:space:]|[:punct:]]*', ''), 'nls_sort=binary_ai')))
          )
          THEN

Discussions similaires

  1. Recherche insensible aux accents avec REGEXP
    Par khasyt dans le forum Requêtes
    Réponses: 7
    Dernier message: 10/08/2009, 03h17
  2. LIKE / insensible à la casse et aux accents
    Par Samish dans le forum Requêtes
    Réponses: 12
    Dernier message: 03/04/2009, 18h53
  3. [script.aculo.us] Autocompleter insensible aux accents
    Par oceanbigone dans le forum Bibliothèques & Frameworks
    Réponses: 4
    Dernier message: 09/12/2008, 01h35
  4. [MySQL] Recherche insensible aux accentuations
    Par toony dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 11/07/2008, 09h04
  5. Recherche insensible à la casse ET insensible aux accents.
    Par Bernard Grosdoy dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 10/07/2005, 03h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo