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 :

order by dans un curseur


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 11
    Points : 9
    Points
    9
    Par défaut order by dans un curseur
    Bonjour j ai un requete dont voici le code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select a.asset_id assid, a.date_placed_in_service dat, a.prorate_date pror1, a.prorate_convention_code pror, a.book_type_code bookcode
             from fa_books a, fa_additions b
             where a.asset_id = b.asset_id
             and a.date_ineffective is null
             and a.book_type_code = p_book_type_code
             and b.asset_number >= p_asset_number1
             and b.asset_number <= p_asset_number2

    quand je rajoute un order by a.asset_id pas de probleme en execution directe de la requete par contre quand j insere la meme ligne dans cette requete au niveu de ma procedure (dans un curseur) ca ne passe pas.
    la requete dans le curseur fonctionne tres bien sans la clause order by.
    alors peut on utiliser un order by dans un curseur et si oui avez vous une idee sur la provenance du probleme ??

    Merci d avance pour vos reponses

  2. #2
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut Re: order by dans un curseur
    Qu'est ce que tu entends par :
    Citation Envoyé par ddmonge
    par contre quand j insere la meme ligne dans cette requete au niveu de ma procedure (dans un curseur) ca ne passe pas.
    Tu as une erreur (si oui laquelle) ou la requête n'est pas triée (si oui, peux-tu mettre ton code) ?
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 64
    Points : 73
    Points
    73
    Par défaut
    Effectivement, le problème n'est pas clairement exposé.

    Un peu plus de précision "ca ne passe pas" c'est pas suffisant

  4. #4
    Futur Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    en fait la requete sans la clause order by fonctionne sans probleme et qd j insere cette clause (order by asset_id a la fin du code) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    cursor cur1 is (
    select a.asset_id assid, a.date_placed_in_service dat, a.prorate_date pror1, a.prorate_convention_code pror, a.book_type_code bookcode
             from fa_books a, fa_additions b
             where a.asset_id = b.asset_id
             and a.date_ineffective is null
             and a.book_type_code = p_book_type_code
             and b.asset_number >= p_asset_number1
             and b.asset_number <= p_asset_number2
             order by asset_id);
    j ai l erreur suivante qd je compile :

    Compilation errors for PROCEDURE APPS.MD_UPDATE_DATE_MISE_EN_SERVICE

    Error: PLS-00103: Symbole "ORDER" rencontré à la place d'un des symboles suivants :

    . ( ) * @ % & - + / at mod rem <an exponent (**)> and or
    group having intersect minus start union where connect ||
    Symbole "group inséré avant "ORDER" pour continuer.
    Line: 13
    Text: order by asset_id

  5. #5
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    c'est un copier/coller ou tu as recopié ?

  6. #6
    Futur Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    c est un copier coller de PL/SQL Developer

  7. #7
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    bizarre... la requête me parait correcte pourtant... et sous SQL*Plus qu'est ce que ça dit ?

  8. #8
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    Citation Envoyé par ddmonge
    en fait la requete sans la clause order by fonctionne sans probleme et qd j insere cette clause (order by asset_id a la fin du code) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    cursor cur1 is (
    select a.asset_id assid, a.date_placed_in_service dat, a.prorate_date pror1, a.prorate_convention_code pror, a.book_type_code bookcode
             from fa_books a, fa_additions b
             where a.asset_id = b.asset_id
             and a.date_ineffective is null
             and a.book_type_code = p_book_type_code
             and b.asset_number >= p_asset_number1
             and b.asset_number <= p_asset_number2
             order by asset_id);
    j ai l erreur suivante qd je compile :

    Compilation errors for PROCEDURE APPS.MD_UPDATE_DATE_MISE_EN_SERVICE

    Error: PLS-00103: Symbole "ORDER" rencontré à la place d'un des symboles suivants :

    . ( ) * @ % & - + / at mod rem <an exponent (**)> and or
    group having intersect minus start union where connect ||
    Symbole "group inséré avant "ORDER" pour continuer.
    Line: 13
    Text: order by asset_id
    "asset_id" est declaré dans tes 2 tables . tu dois obligatoirement utilisé tes alias dans ce cas précis
    as tu essayés avec : ou
    Signé : Capitaine Jean-Luc Picard

  9. #9
    Futur Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Sous SQL Plus la requete marche sans probleme.
    J ai essaye les order by1 ou order by avec les deux tables.
    En fait moi je pense que le probleme vienne du fait que j utilise un curseur.

  10. #10
    Futur Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Il est surprenant aussi que je puisse faire un group by.
    Si je mets un group by a la place d un order by le programme compile mais le order by ne compile pas.
    De plus l erreur notifie represente une erreur de syntaxe ?? (comme si il manquait un element avant le order non ??)

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 64
    Points : 73
    Points
    73
    Par défaut
    et sans les parenthèses ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    cursor cur1 is 
    select a.asset_id assid, a.date_placed_in_service dat, a.prorate_date pror1, a.prorate_convention_code pror, a.book_type_code bookcode
             from fa_books a, fa_additions b
             where a.asset_id = b.asset_id
             and a.date_ineffective is null
             and a.book_type_code = p_book_type_code
             and b.asset_number >= p_asset_number1
             and b.asset_number <= p_asset_number2
             order by asset_id;

  12. #12
    Futur Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Alors la, merci beaucoup ...
    j ai toujours mis des parentheses pour declarer un curseur je ne pensais pas que ca pouvait poser probleme.
    En tout cas maintenant ca marche
    Merci encore

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 64
    Points : 73
    Points
    73
    Par défaut
    Une p'tite balise "résolu" ?

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour,


    je suis d'accord avec echoes. je pense que les parenthèses sont en trop.

  15. #15
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    Des fois que !!!
    Je remarque dans mes curseurs PL que je ne met pas de paranthèse après le "Is" .... Kek ksa donne sans ?
    Signé : Capitaine Jean-Luc Picard

  16. #16
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    Ooooopsss !!!
    Signé : Capitaine Jean-Luc Picard

  17. #17
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    fallait la voir celle-ci

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/06/2006, 16h28
  2. order by dans un filter?
    Par charleshbo dans le forum Access
    Réponses: 1
    Dernier message: 11/05/2006, 20h01
  3. PL/SQL, problème dans un curseur avec un insert
    Par yador dans le forum PL/SQL
    Réponses: 4
    Dernier message: 27/01/2006, 14h31
  4. Problème de Order by dans une requête
    Par showa dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/08/2004, 15h40
  5. ORDER BY dans un ordre inhabituel
    Par Riam dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 21/03/2003, 13h29

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