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 :

probleme de curseur


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 190
    Par défaut probleme de curseur
    Bonjour,
    j'ai essaye d'utiliser un cursuer ds une procedure
    en fait , ce select rend les chiffres places entre virgules
    et donc je souhaite parcourir tout chiffres, je les recupere ds la procedure comme varchar2 (exemple '5,6,8,7,3')
    ce select , je l'ai teste et ca marche
    par contre le probleme est ds le curseur
    voici la declaration :

    CREATE OR REPLACE Procedure dispatch_LISSAGE(projectIdList varchar2,perId number,genId number, ecriture number) is
    cursor cur_lissage(projectIdList in varchar2) is select substr(the_string, decode(level, 1, 1, instr(the_string,',',1,level-1)+1), decode( instr(the_string,',',1,level), 0, length(the_string), instr(the_string,',',1,level) - decode( level, 1, 0, instr(the_string,',',1,level-1))-1) ) ProjectID from (select projectIdList the_string from dual ) connect by level < length(replace(translate(the_string,'01234567890','00000000000'),'0')) + 2;
    lissage_rec cur_lissage%ROWTYPE;


    ca retourne cette erreur :

    PROCEDURE CPFA.DISPATCH_LISSAGE
    On line: 22
    PLS-00225: subprogram or cursor 'CUR_LISSAGE' reference is out of scope


    Cdlt
    Sallemel

  2. #2
    Membre éprouvé
    Inscrit en
    Février 2009
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 127
    Par défaut
    Bonsoir,

    Pourrais tu expliquer ton problème en francais
    Et mettre ton code entre balise quote en l'indentant.
    ça sera plus facile à comprendre et à lire pour essayer de t'aider.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 190
    Par défaut
    non, parceque ce pb est deja resolu
    j'ai utilise le curseur parametre et j'ai passe le parametre lors de l'ouverture du curseur
    open cur_lissage(projectIdList);


    sinon, si tu attends encore la traduction, fais moi signe

  4. #4
    Membre éprouvé
    Inscrit en
    Février 2009
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 127
    Par défaut
    Ok ça roule
    Dans ce cas marque le
    ça évitera que des personnes perdent leur temps ...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 190
    Par défaut
    la compilation s'est bien passee
    sauf que si je mets ds listprojet '1,2,6,9'
    ds ce cas, le select a partir duquel le curseur est defini, renvoie 4 entrees
    mais lors du parcours du curseur ca ne renvoie qu'une seule entree
    (c en debugguant avec toad que j'ai trouve le rowcount du curseur egale a 1, pourtant le select retourne 4 entrees)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    open cur_lissage(projectIdList);
    loop
         FETCH cur_lissage INTO lissage_rec;
     EXIT WHEN cur_lissage%NOTFOUND;
    -- trt
    end loop;
    close cur_lissage;
    Cdlt
    Sallemel

  6. #6
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Pour être plus propre, uitilise plutot cette syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    FOR lissage rec IN cur_lissage(projectIdList) LOOP
      -- ici le traitement
      -- le record (lissage_rec) est remplis automatiquement
      -- sans FETCH ni NOTFOUND
      -- ni CLOSE (implicite)
      dbms_output.put_line(lissage_rec.champ1);
    end loop;

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

Discussions similaires

  1. Probleme du curseur parametrable ou utlfile?
    Par Mehdilis dans le forum Oracle
    Réponses: 3
    Dernier message: 26/09/2006, 18h31
  2. Probleme de curseur
    Par Cofondinde dans le forum SQL
    Réponses: 1
    Dernier message: 25/09/2006, 16h43
  3. [FLASH 8] Problème de curseur
    Par freija dans le forum Flash
    Réponses: 4
    Dernier message: 12/07/2006, 12h04
  4. Probleme de curseur
    Par os_rasta dans le forum ASP
    Réponses: 30
    Dernier message: 09/03/2006, 11h47
  5. [HTML] Probleme de curseur dans un formulaire
    Par Phenomenium dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 08/01/2006, 19h42

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