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 :

Like Case Insensitive


Sujet :

Administration Oracle

  1. #1
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 178
    Points : 40
    Points
    40
    Par défaut Like Case Insensitive
    Bonjour je viens de recherches sur le forum des solutions a mon problème mais aucune ne convient complètement.
    En fait j'aimerais pouvoir effectuer une requete avec un like sans que se soit sensible a la casse.
    Je vous donne un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from b_person where per_nom like 'locataire%'
    cela ne me retourne rien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from b_person where per_nom like 'Locataire%'
    cela me retourne bien les enregistrements voulu.
    Existe-il un moyen de faire en sorte que pour un like la casse ne soit pas prise en compte?
    J'ai trouver des solutions mais elles ne fonctionne qu'avec le =, sinon pour les autres je suis obliger de modifier toutes mes requêtes avec un UPPER(),or j'aimerais éviter de reprendre toutes mes requêtes.
    Du coup je n'ai pas trouver de solution. Je suis en version d'oracle 9i.
    Si quelqu'un a une idée ou une piste, merci d'avance.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 207
    Points : 237
    Points
    237
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter session set NLS_COMP=LINGUISTIC;
    L'avantage, c'est que le alter session peut être lancé via un trigger de type after logon, ou au niveau applicatif.

    Petite restriction, la valeur LINGUISTIC n'existe que depuis la 10g Release 2. (désolé , j'avais pas lu le post en entier, et donc tu es en 9...)

    Laurent

  3. #3
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 178
    Points : 40
    Points
    40
    Par défaut
    oui j'avais vu ça mais malheureusement je suis en version 9i, il n'existe pas un équivalent pour cette version?

  4. #4
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonjour,

    regarde ce lien , il peut t'aider


    http://forums.oracle.com/forums/thre...53673&#1153673

    perso, je l'a testé mais avec du 11G , ca fonctionne

    asktom.oracle.com tahiti.oracle.com otn.oracle.com

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.


    phrase chinoise issue du Huainanzi

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 207
    Points : 237
    Points
    237
    Par défaut
    Bonjour,

    Ca va fonctionner mais uniquement avec critère d'égalité mais pas avec le LIKE.

    laurent

  6. #6
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 178
    Points : 40
    Points
    40
    Par défaut
    oui j'avais vu cette solution, par contre cela fonctionne que pour les recherche avec = pas avec like,or j'aimerais éviter de modifier toutes mes requêtes.Et je trouve pas de solution

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 207
    Points : 237
    Points
    237
    Par défaut
    C'est peut être l'occasion de passer sous ORACLE 10....

  8. #8
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 178
    Points : 40
    Points
    40
    Par défaut
    oui je pense que c'est ce que je vais finir par faire si je ne trouve pas de solutions alternatives......

  9. #9
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut
    Citation Envoyé par lallio Voir le message
    Bonjour,

    Ca va fonctionner mais uniquement avec critère d'égalité mais pas avec le LIKE.

    laurent
    Avez vous testé , ou par oui dire


    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     
     insert into table1  values ('TOTAL');
     
    1 row created.
     
     insert into table1  values ('toto');
     
    1 row created.
     
     insert into table1  values ('tata');
     
    1 row created.
     
     insert into table1  values ('TITI');
     
    1 row created.
     insert into table1  values ('TUTU');
     
    1 row created.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
     ALTER session SET NLS_COMP=LINGUISTIC;

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select * from table1
      2  where col1 like 'TO%';
     
    COL1
    --------------------------------------------------------------------------------
    TOTAL
    toto

    asktom.oracle.com tahiti.oracle.com otn.oracle.com

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.


    phrase chinoise issue du Huainanzi

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 207
    Points : 237
    Points
    237
    Par défaut
    Bonjour,

    J'essaye de me donner comme règle de tester ce que j'avance.
    Et j'ai tésté par rapport au lien de ton post qui ne parlait pas du linguistic dont je suit tout a fait d'accord qu'il fonctionne puisque c'était ma première réponse à la question (avant que je me rende compte que la personne était sous Oracle 9).

    Dans ton lien http://forums.oracle.com/forums/thre...153673�

    Il est question de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    alter session set nls_comp=ansi;
    ALTER SESSION SET NLS_SORT=GENERIC_BASELETTER;
    Et c'est de ca dont je disais que cela fonctionne avec une égalité et pas le like.

    Laurent

  11. #11
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 178
    Points : 40
    Points
    40
    Par défaut
    Tout a fait je viens de le contrôler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ALTER session SET NLS_COMP=LINGUISTIC;
    ERROR:
    ORA-12705: la valeur indiquée au paramètre NLS est inconnue ou erronée
    Avec la version 9i d'oracle, et les autres modifications de session porte effectivement sur des contrôles d'égalité.

    Du coup j'ai toujours pas trouver d'alternative a mon problème

  12. #12
    Invité
    Invité(e)
    Par défaut
    Est-ce que tu as regardé les fonctionnalités Intermedia ?

  13. #13
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 178
    Points : 40
    Points
    40
    Par défaut
    J'ai regardé vite fait, mais j'ai rien vu qui parle du case sensitive, si tu as un lien ou cela en parle je suis preneur.

  14. #14
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut
    Citation Envoyé par lallio Voir le message
    C'est peut être l'occasion de passer sous ORACLE 10....
    Ok , tes reponses sont pertinentes

    Je pense aussi que si on contacte Metalink pour ce poste ,leur réponse serait semblable ...

    peut etre 11G

    asktom.oracle.com tahiti.oracle.com otn.oracle.com

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.


    phrase chinoise issue du Huainanzi

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par locs Voir le message
    J'ai regardé vite fait, mais j'ai rien vu qui parle du case sensitive, si tu as un lien ou cela en parle je suis preneur.
    De mémoire, ce n'est pas case sensitive. Je ne sais plus si c'est une des multiples options ou si c'est par défaut.

  16. #16
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 178
    Points : 40
    Points
    40
    Par défaut
    Bonjour, je viens de passer en version 10g de oracle du coup afin que le like soit case insensitive j'exécute ces deux lignes pour modifier mes paramètres sessions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ALTER session SET NLS_COMP=LINGUISTIC;
    ALTER SESSION SET NLS_SORT=BINARY_AI;
    Par contre je me demandé, si il est possible de définir c'est variable sans passer par un alter session? ni un trigger au niveau de la connexion?
    Existe-il un paramètre à modifier?

    Merci d'avance pour votre aide.

  17. #17
    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
    Et ca , tout simplement , ca marche pas ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM b_person WHERE upper(per_nom) LIKE 'LOCATAIRE%'
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  18. #18
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 207
    Points : 237
    Points
    237
    Par défaut
    Bonjour,

    Ca mache très bien, sauf que dans le post initial, notre ami désirait un moyen qui ne l'oblige pas à modifier toutes ces requetes.

    Laurent

  19. #19
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut
    Citation Envoyé par locs Voir le message
    Bonjour, je viens de passer en version 10g de oracle du coup afin que le like soit case insensitive j'exécute ces deux lignes pour modifier mes paramètres sessions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ALTER session SET NLS_COMP=LINGUISTIC;
    ALTER SESSION SET NLS_SORT=BINARY_AI;
    Par contre je me demandé, si il est possible de définir c'est variable sans passer par un alter session? ni un trigger au niveau de la connexion?
    Existe-il un paramètre à modifier?

    Merci d'avance pour votre aide.

    Bonjour,

    on ne peux le faire a part alter session, trigger


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    NLS_COMP
    Property 	Description
    Parameter type 	String
    Syntax 	NLS_COMP = { BINARY | LINGUISTIC | ANSI }
    Default value 	BINARY
    Modifiable 	ALTER SESSION
    Basic 	No

    asktom.oracle.com tahiti.oracle.com otn.oracle.com

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.


    phrase chinoise issue du Huainanzi

Discussions similaires

  1. Comment filtrer avec une case insensitive ?
    Par savoir dans le forum Débuter
    Réponses: 2
    Dernier message: 06/09/2007, 11h09
  2. [Hibernate] Requête avec un LIKE %% case insensitive
    Par n@n¤u dans le forum Hibernate
    Réponses: 4
    Dernier message: 21/06/2006, 17h27
  3. Réponses: 2
    Dernier message: 15/05/2006, 14h08
  4. Case insensitive methode contains()
    Par mihaestii dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 12/11/2005, 11h25
  5. equivalent de l'operateur like mais insensitive
    Par fxgamoy dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 21/06/2005, 10h23

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