Prob ! Procédure stockées oracle avec date

cs_dexter02 Messages postés 1 Date d'inscription mardi 10 mars 2009 Statut Membre Dernière intervention 3 juin 2009 - 3 juin 2009 à 11:41
nivsql Messages postés 159 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 14 décembre 2010 - 24 juin 2009 à 18:32
Bonjour
sous oracle 10g
Je souhaite créer une procédure qui me remplit une table Stat_gain a partir de la table GAIN entre une Variable globale (V_GLOBAL_GAIN) qui contient la derniere date calculer et la date systeme-1 . j'ai essayé mais malheuresement sans resultat puisque je suis Débutant en SQL merci pour le coup de main ;)

voici la procedure que j'ai creer:

PROCEDURE P_STAT_GAIN IS
   
    V_GLOBAL_GAIN CONSTANT GAIN.D_GAIN%type :='01/06/2009';
    D_GAIN GAIN.D_GAIN%type;
    la_date DATE;
  
BEGIN
         select SYSDATE into la_date from dual;
         while(D_GAIN<=la_date-1 and D_GAIN > V_GLOBAL_GAIN) Loop
                     
            INSERT INTO STAT_GAIN 
            ( SELECT CODE_NIV ,D_GAIN ,RAISON ,SUM(NB_PTS)
            FROM GAIN,COMPTE
            WHERE GAIN.ID_COMPTE=COMPTE.ID_COMPTE
            GROUP BY (RAISON,CODE_NIV,D_GAIN));
       
        END LOOP;
   
  
    END;
   
 END;
/

le problème est lorsque j'execute l'insert seul sans procedure tout marche !!!!!!!!!!!!!!!!!!!

1 réponse

nivsql Messages postés 159 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 14 décembre 2010 1
24 juin 2009 à 18:32
Les boucles infinie c'est le mal !

Tu n'initialise pas ta variable D_GAIN, donc le teste de ta boucle While est toujours faux, bref tu n'entre jamais dans la boucle.
Pense a l'interieur de ta boucle a faire evoluer ta variable D_GAIN egalement car sinon tu sera enfermé dans une boucle infinie.

Le probleme ne viens pas de l'insert ;)
0
Rejoignez-nous