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

PL/SQL Oracle Discussion :

Order by ne fonctionne pas avec un curseur [10gR2]


Sujet :

PL/SQL Oracle

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 188
    Points
    188
    Par défaut Order by ne fonctionne pas avec un curseur
    Bonjour

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
       Cursor cReg is Select region_code_insee, region_libelle From region_administrative Order by region_libelle;
       lr_reg cReg%Rowtype;   
    BEGIN
     
         Open cReg;
         Loop
     
             Fetch cReg into lr_reg;
             ...
    Le problème est que le curseur ne parcourt pas ma table dans l'ordre demandé. J'ai essayé un "order by 2" pour voir, pas mieux. A priori la table est parcourue dans l'ordre de création des lignes (Rowid)
    Pourtant, si je lance la requete Select en aparté l'ordre est correct.

    D'où cela vient -il ?

    Merci
    Loko

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    En testant sur une 11.2.0.3, je ne parviens pas à reproduire le problème.
    Une recherche rapide sur Metalink ne remonte rien non plus.

    Pouvez-vous fournir un jeu de test permettant de faire la démonstration du problème par simple copier coller ? (CREATE TABLE, INSERTs et code PL/SQL suffisant)
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  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
    Vous devez vous tromper quelques part. Depuis la version 9 d'Oracle toute ordre SQL exécuté à partir de PL/SQL est passé au moteur SQL de la base pour exécution. Au moment de la compilation après avoir fait le parsing de la requête le moteur PL/SQL se contente juste de stocker le texte normalisée de la requête pour le passer au moteur SQL au moment de l'exécution.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 188
    Points
    188
    Par défaut
    Merci à vous 2.

    Vous avez raison, cela fonctionne. Je me suis bêtement fait avoir : dans ma boucle je génère une sortie de données au format JSON que je récupère ensuite au niveau de mon navigateur web et là il refait un tri forcé sur la 1ere propriété qu'il trouve, je ne le savais pas (que ce soit FireBug ou une librairie Json javascript)

    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Curseur ne fonctionne pas avec Mysql
    Par larbiDida dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 19/04/2011, 16h51
  2. SQLExpress2005 "order by" ne fonctionne pas
    Par cbleas dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 02/08/2006, 12h15
  3. evenement onclick ne fonctionne pas avec explorer??
    Par nath-0-0 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 15/03/2006, 12h13
  4. Réponses: 7
    Dernier message: 24/01/2006, 11h03
  5. window.resizeTo ne fonctionne pas avec firefox?
    Par FrankOVD dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/06/2005, 15h07

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