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

SQL Oracle Discussion :

[10g] Bug fonction INSTR


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 120
    Par défaut [10g] Bug fonction INSTR
    Bonjour,

    Il semble que la fonction INSTR bugge lorsque NLS_SORT est à FRENCH_AI et NLS_COMP est à LINGUISTIC.

    J'ai une chaîne de caractères, dans laquelle se trouve une seule fois #136#. Je recherche la seconde occurence : la fonction INSTR ne devrait donc pas la trouver et renvoyer 0. Avec NLS_COMP à BINARY par exemple, elle renvoie bel et bien 0, mais en modifiant NLS_SORT et NLS_COMP comme indiqué ci-dessus, la fonction la trouve!!! En fait, elle ne trouve pas #136# mais 1#36 ce qui n'est pas la même chose! De plus, elle indique une position approximative...

    Alors, que faire? Sachant que j'ai absolument besoin de NLS_SORT et NLS_COMP paramétrés ainsi dans mon application, car les utilisateurs font des recherches sur des noms par exemple, et souhaitent que "René" = "RENE", et j'utilise dans pas mal d'endroits des INSTR sur des chaînes comportant des nombres séparés par des # ....

    Voici ci-dessous les instructions pour reproduire le bug.

    Merci pour vos réponses.

    Code : 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
    SELECT INSTR
             ('#136#137#138#139#604#151#152#155#291#154#153#148#294#296#300#3318#295#297#301#2170#3319#3631#3621#3617#3615#'
            , '#136#', 1, 2)
      FROM DUAL;
     
    -- renvoie 0
     
    alter session set NLS_SORT = FRENCH_AI;
     
    alter session set NLS_COMP = LINGUISTIC;
     
    SELECT INSTR
             ('#136#137#138#139#604#151#152#155#291#154#153#148#294#296#300#3318#295#297#301#2170#3319#3631#3621#3617#3615#'
            , '#136#', 1, 2)
      FROM DUAL; 
     
    -- renvoie 96

  2. #2
    Membre Expert 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
    Par défaut
    Bonjour,

    je confirme , en 10GR1 , OK

    en 11G patch 7 ,OK

    en 10G R2 patch 03 KO ....


    mais NLS_COMP aparement c'est super buggé

    note metalink 5252496.8
    Doc ID: 3999212.8
    Doc ID: 68579.1

Discussions similaires

  1. [VB6] Fonction inStr incorrecte
    Par Invité dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 03/07/2007, 20h29
  2. [forms 10g] BUG avec SET_BLOCK_PROPERTY ?
    Par Magnus dans le forum Forms
    Réponses: 7
    Dernier message: 22/03/2007, 16h15
  3. Fonction InStr et expression régulière
    Par lyxthe dans le forum Access
    Réponses: 7
    Dernier message: 24/10/2006, 11h03
  4. [VBA EXCEL] Fonction Instr
    Par thulvar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/01/2006, 14h43
  5. Réponses: 2
    Dernier message: 05/12/2005, 12h16

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