Partage
  • Partager sur Facebook
  • Partager sur Twitter

Procédure ne fonctionne pas

Sujet résolu
    26 novembre 2010 à 20:23:52

    Bonjour,
    J'ai réalisé une procédure, elle insert une ligne dans une table(projet), et elle reprend le code de la nouvelle ligne pour en insert une autre dans une autre table(activite), Sans le rollback la premiére est bien inseré, mais pas la deuxieme. Si vous avez une idée de mon erreur... merci d'avance.

    code_proj et id_lot sont des fonctions qui me retourne des numéro sequentiel additionné a un autre chiffre.

    CREATE OR REPLACE 
    PROCEDURE COPIE8PROJ (code IN projet.projcode%type) AS 
     
    codep projet.projcode%type;
    codea activite.actiidlot%type;
    p projet%rowtype;
    acti activite%rowtype;
     
    BEGIN
      
          SELECT code_proj INTO codep FROM dual;
          SELECT * INTO p FROM projet WHERE projcode = code;
          INSERT INTO projet VALUES (codep, p.clino, p.typprojid, p.sectactiid, p.colabmatri, p.projchaglobesti, p.projcyclvi, p.projdtdbuprev,
            p.projdtfnprev, p.projdtreeldbu, NULL, p.projlibcour, p.projliblon, p.projnbcolab, 'copie'); 
            
          SELECT id_lot(codep) INTO codea FROM dual ;
          SELECT * INTO acti FROM activite WHERE projcode = code AND actiidlot = to_number(concat(code, to_char('01')));
          INSERT INTO activite VALUES (codea, acti.typactiid, codep, 0, 0, 0);
     
        commit;
     
      exception
      when others then
      dbms_output.put_line('erreur');
      rollback;
      
    END COPIE8PROJ;
    

    oracle 11g, win xp, ecrit sous sql developer
    • Partager sur Facebook
    • Partager sur Twitter

    Procédure ne fonctionne pas

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown