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 :

Ordre d'affichage du résultat d'une requête SELECT


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 221
    Par défaut Ordre d'affichage du résultat d'une requête SELECT
    Bonjour,

    Je me demande si lorsqu'on fait un SELECT simple (pas de jointure) sur une table, l'ordre d'affichage des records trouvés ne doit-il pas être toujours le même (table inchangée) ? C'est du moins ma constatation, ça ne change pas (avec SQL plus, avec des outils tiers comme SQL Manager, un programme que j'écris utilisant ADO, etc.). Même avec une table sous SQL Server avec les même données, ça parait être même ordre (mais je dois encore revérifier)

    J'ai posé cette question car récemment (aujourd'hui), il m'est arrivé que dans un 2è prog que j'ai écrit (en C++ avec ADO), l'ordre n'est plus le même et ça a causé une exception de ->MoveNext() !!! Est-ce que par hasard quelqu'un d'ici aurait déja rencontré cette situation ?
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  2. #2
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    en théorie, un select simple sans jointure et sans clause order by trie le résultat par rowid (donc ordre de création)
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  3. #3
    Membre émérite Avatar de philcero
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2007
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 528
    Par défaut
    Apparemment ADO peut rencontrer des problèmes avec l'ordre de traitement des rowid.
    Va voir cet article de chez Microsoft qui donne une méthode : INFO: Oracle OLE DB Provider and ROWID Use

  4. #4
    Membre extrêmement actif
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 221
    Par défaut
    Apparemment ADO peut rencontrer des problèmes avec l'ordre de traitement des rowid.
    J'ai lu l'article mais moi, j'utilise le provider d'Oracle !!

    Si le résultat est trié selon ROWID, l'ordre doit donc toujours être le même même avec une table oracle exportée vers sql server (j'ai vérifié ça affiche même ordre sous ems sql manager)!! Mais dans mon application, c'est en désordre encore; bon, je vais vérifier pourquoi
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  5. #5
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Ce n'est pas une certitude 100%

    Si tu veux que le tri soit toujours pareil, il faut le faire explicitement.

  6. #6
    Membre extrêmement actif
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 221
    Par défaut
    Il me semble qu'un select simple est toujours dans l'ordre du ROWID (implicitement bien sur) !!
    Mon cas est assez délicat car même si j'ajoute "ORDER BY ROWID", l'ordre ne se fait toujours pas !!!!!!!!!!!!! (sous ADO bien sur)


    Scénario:
    SELECT nom, matricule FROM matable;

    Le count (nombre de records) résultant est de 14. En bouclant pour lire un à un les enregistrements, ça crash à la 7è boucle (toujours ordre dans le désordre) avec l'erreur: "BOF ou EOF est égal à True ou l'enregistrement actuel a été supprimé. L'opération demandée nécessite un enregistrement actuel."
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

Discussions similaires

  1. Affichage du résultat d'une requête SQL
    Par kamikazbe dans le forum JDBC
    Réponses: 2
    Dernier message: 24/05/2007, 19h47
  2. [MySQL] Affichage des résultats d'une requête sur plusieurs pages
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/10/2006, 13h24
  3. [VBA Access]Pb affichage de résultat d'une requête
    Par BouGeTonQ dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 18/06/2006, 18h49
  4. Affichage du résultat d'une requête paramétrée
    Par Julien Dufour dans le forum Access
    Réponses: 6
    Dernier message: 11/05/2006, 14h32
  5. [Oracle] Ordre d'affichage de lignes d'une requête
    Par duboisfa dans le forum Langage SQL
    Réponses: 14
    Dernier message: 27/02/2006, 19h05

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