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