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

Oracle Discussion :

Incohérence de résultats de requête hiérarchique


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 21
    Points : 14
    Points
    14
    Par défaut Incohérence de résultats de requête hiérarchique
    Bonjour,

    Nous rencontrons en ce moment un comportement étrange sur notre base Oracle.

    Le contexte physique :
    - Base Oracle 10gR2 (10.2.0.1)
    - Serveur Win2003

    Une de nos requêtes utilise les fonctions hiérarchiques sur une table partitionnée.

    Jusqu'ici tout va bien. Or, cette requête nous ramène des résultats complètement incohérents en fonction des colonnes choisies dans le select!

    Voici un exemple parlant, identique à ce que l'on a dans notre cas. Dans notre table, nous n'avons qu'une ligne (données de test):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    select 
      code, 
      libelle, 
      libelle_long
    from
      table_code
    where
      trunc(date_codif) = trunc(sysdate) -- Notre clé de partitionnement (une partition par jour)
    start with code_parent is null
    connect by code_parent = prior code;
    => Retour de la requête : rien du tout!

    Nous changeons la requête et excluons la colonne libelle_long (et spécifiquement celle-ci!):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    select 
      code, 
      libelle --,
      -- libelle_long -- Nous excluons ce champ
    from
      table_code
    where
      trunc(date_codif) = trunc(sysdate) -- Notre clé de partitionnement (une partition par jour)
    start with code_parent is null
    connect by code_parent = prior code;
    => Retour de la requête : Notre ligne de tests!


    Pour résumer : nous avons un cas, où, alors que nous n'avons pas de fonction d'agrégation ou autre, le choix des colonnes dans le sélect influe sur le résultat.

    Là où c'est encore plus cocasse, c'est que lorsque nous englobons ces deux requêtes pour en obtenir le nombre de lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(*) from (requete)
    Nous obtenons 1 ligne comptée dans les deux cas.

    Quelqu'un aurait une piste?

    D'avance, merci

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Et pour ajouter une nouvelle pierre à l'édifice, nous avons tenté de reproduire le cas sur une base bac à sable 11g.

    Le cas ne se reproduit pas, avec exactement et strictement les mêmes données...

    J'ai cherché parmi les bugs référencés de la 10g, je n'ai rien trouvé.

  3. #3
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    De mémoire, il y avait des bugs sur des requête hierarchique en 10.2.0.1. Installer les patchs et très probablement ils seront corrigés.

Discussions similaires

  1. [Vxi3] Incohérence de résultats requêtes similaires
    Par scalpa63 dans le forum Webi
    Réponses: 3
    Dernier message: 28/09/2011, 10h06
  2. Réponses: 7
    Dernier message: 26/09/2005, 17h50
  3. table comme résultat de requête
    Par nafnaf625 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/05/2005, 11h51
  4. Comparaison de résultats de requêtes
    Par Nyx de Tours dans le forum Requêtes
    Réponses: 7
    Dernier message: 31/07/2004, 15h49
  5. Trier aléatoirement un résultat de requête
    Par ang36 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/01/2004, 17h38

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