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 : 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
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