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 :

Procédure, boucle et curseur pour une débutante


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Par défaut Procédure, boucle et curseur pour une débutante
    Bonjour
    je redirige mon message sur conseil d'un forumiste avisé (merci GoldoZ)

    Je tente de créer une procédure qui me renvoit un curseur avec un jeu d'enregistrement.
    Pour cela je boucle sur une première requête select pour exécuter sur chaque résultat de celle-ci une deuxième requête select dont le résultat devra être stocké dans un curseur.
    Evidemment ça ne marche pas.

    Merci pour votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
     
     
     
     
    PROCEDURE PRC_DISPLAY_REQUEST_ID(p_user_id IN VARCHAR2(13),
                                   request_cursor OUT T_CURSOR
                                  )
    IS V_CURSOR1 T_CURSOR;
     
     
     
     
    DECLARE
     
            /* Output variables to hold the result of the query: */
     
         a BPSBT_REQUEST.REQUEST_ID%TYPE;
     
     
            /* Cursor declaration: */
     
         CURSOR T1Cursor IS
     
             SELECT DISTINCT request_id FROM bpsbt_request_process;
     
     
     BEGIN
     
         OPEN T1Cursor;
     
         LOOP
     
                /* Retrieve each row of the result of the above query
     
                   into PL/SQL variables: */
     
             FETCH T1Cursor INTO a;
     
                /* If there are no more rows to fetch, exit the loop: */
     
             EXIT WHEN T1Cursor%NOTFOUND;
     
                /* Delete the current tuple: */
     
             OPEN V_CURSOR1 FOR
             SELECT request_id from bpsbt_request_process where request_id = a and user_key_recipient = p_user_id and request_status_id = 0 and request_process_date in (select max (request_process_date) from bpsbt_request_process where request_id = a);
     
     
         END LOOP;
     
            /* Free cursor used by the query. */
     
         CLOSE T1Cursor;
     
     
         request_cursor := V_CURSOR1;
     
     
      END PRC_DISPLAY_REQUEST_ID;

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    507
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Par défaut
    2 corrections immédiates:
    - enlevez le "(13)" dans votre déclaration
    - enlevez le "declare"

    Ensuite, dans votre déclaration "PROCEDURE prc_display_request_id (p_user_id IN VARCHAR2, request_cursor OUT t_cursor)", t_cursor doit être défini à l'extérieur de la procédure.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Par défaut
    Citation Envoyé par GoLDoZ Voir le message
    2 corrections immédiates:
    - enlevez le "(13)" dans votre déclaration
    - enlevez le "declare"

    Ensuite, dans votre déclaration "PROCEDURE prc_display_request_id (p_user_id IN VARCHAR2, request_cursor OUT t_cursor)", t_cursor doit être défini à l'extérieur de la procédure.

    Merci beaucoup
    j'ai procédé aux modifs, et j'avais déjà déclaré T_CURSOR en amont, mais ça marche toujours pas...

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 119
    Par défaut
    Bonjour,
    peux tu afficher les erreurs provoquées?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Par défaut
    Citation Envoyé par guizaniseifislam Voir le message
    Bonjour,
    peux tu afficher les erreurs provoquées?
    Bonjour guizaniseifislam
    la seule erreur que j'ai c'est "invalid SQL statement" !

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    507
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Par défaut
    Pour créer ta procédure, tu as bien mis "CREATE OR REPLACE PROCEDURE ..."?

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/01/2014, 11h46
  2. [ZF 1.10] Erreur incompréhensible pour une débutante
    Par Nelpha dans le forum Zend Framework
    Réponses: 21
    Dernier message: 09/09/2010, 14h05
  3. PL SQL curseur : help une débutante
    Par menel_dev dans le forum PL/SQL
    Réponses: 2
    Dernier message: 20/02/2009, 15h23
  4. CMS ou HTML pour une débutante
    Par stéphanie78 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 12/02/2009, 09h35
  5. [c#] Changer de curseur pour une application complète
    Par dams580 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 16/06/2006, 10h32

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