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 :

Requête avec un fonctionnement étrange


Sujet :

SQL Oracle

  1. #1
    Membre du Club

    Inscrit en
    Avril 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2004
    Messages : 44
    Points : 55
    Points
    55
    Par défaut Requête avec un fonctionnement étrange
    J'ai une requête très simple qui fonctionne bizarrement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select codsoc,codsoc_o from eve where codsoc != codsoc_o
    celle-ci me retourne une seule ligne , ce qui est juste

    par contre si je met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from eve where codsoc != codsoc_o
    il me retourne 113 lignes et dans celle-ci le codsoc n'est pas différent de codsoc_o .

    et si je fais celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from eve where to_char(codsoc_o) <> to_char(codsoc);
    il me retourne bien une ligne ....

    hors les champs codsoc_o et codsoc sont des integer

    est ce que quelqu'un a une explication ?

  2. #2
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select codsoc,codsoc_o from eve where codsoc != codsoc_o
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from eve where codsoc != codsoc_o
    Le nombre de ligne des deux requêtes ne peux être différent.

    Soit tu ne nous as passé qu'une partie de la requete (style il y a un distinct que tu ne nous as pas dit), soit alors c'est un bug...

    Pour un savoir plus :

    1) essaye de trouver un cas reproduisible avec desc CREATE TABLE et des INSERT
    2) compare les deux plans d'exécution
    3) indique ta version

  3. #3
    Membre du Club

    Inscrit en
    Avril 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2004
    Messages : 44
    Points : 55
    Points
    55
    Par défaut
    non je n'ai rien caché sur la requête je vous la passe comme je l'exécute, le create me semble pas faux car codsoc et codsoc_o sont bien en integer.

    La version d'oracle est la suivante :
    Oracle Database 10g Release 10.2.0.3.0 - 64bit Production


    Je vais essaye de voir sur le site d'oracle parce que je comprend pas trop

    Pour les deux explain plan il n'y a pas de différence, il s'agit peut être d'un bogue...

  4. #4
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    tu utilises sqlplus?

  5. #5
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Est-ce que tu peux nous montrer le plan d'exécution aver la partie 'Predicate Information' (sous sqlplus avec set autotrace on par exemple)
    Merci,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

Discussions similaires

  1. [AC-2010] Requête avec NOT IN qui ne fonctionne pas
    Par happyaccess dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 24/03/2013, 23h53
  2. [MySQL] requête avec AND ne fonctionne pas
    Par rvm31 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/11/2011, 16h53
  3. [AC-2007] Ma requête avec condition ne fonctionne pas
    Par spike35s dans le forum VBA Access
    Réponses: 1
    Dernier message: 15/03/2010, 06h13
  4. Class C# avec requéte SQL qui fonctionne pas
    Par nasimpat7 dans le forum ASP.NET
    Réponses: 13
    Dernier message: 01/04/2009, 23h58
  5. Comment faire fonctionner une requête avec NOT EXISTS
    Par arnaudperfect dans le forum Requêtes
    Réponses: 2
    Dernier message: 13/11/2007, 10h39

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