Z'ai un petit pb avec ma procedure stocké,
l'idée est :
Table 1, Table 2
prendre les enregistrements de table 2, et
inserrer dans table 1 s'il n'existe pas déjà (par rapport à la clef primaire)
SINON update une valeur de l'enregistement (par rapport à cette même clef)
CE que j'ai écrit:
/*************************** début proc ****************/
CREATE OR REPLACE procedure PROC_INS_UPDATE_PB
(
)
IS
lcount number(8);
cursor o_cursor is
/************** je prend les valeurs de la table 2 pour comparer avec la clef de Table1 ****************/
select tbl2.pky1,
tbl2.pky2,
tbl2.pky3,
tbl2.montant
from table2 tbl2;
curs_row o_cursor%rowtype;
BEGIN
OPEN o_cursor;
LOOP
fetch o_cursor into curs_row;
/*************** je vérifie l'existance du premier select pa rapport à table1 ***********************/
select count(*) into lcount
from table1 tbl1
where tbl1.pky1 = curs_row.pky1
AND tbl1.pky2 = curs_row.pky2
AND tbl1.pky3 = curs_row.pky3;
if lcount=1 THEN
UPDATE table1 Set valeur = curs_row.montant;
ELSE
INSERT into table1 values ( curs_row.pky1,
curs_row.pky2,
curs_row.pky3,
curs_row.montant);
COMMIT;
EXIT WHEN o_cursor%NOTFOUND
END LOOP;
CLOSE o_cursor;
END
/
/*************************** fin proc ****************/
Lorsque je l'éxécute, il me dit qu'il il y une erreur dans le script...
Petite précision, c'est ma première Pro stock sur Oracle alors j'ai écrit un peu n'importe quoi.. merci de ne pas taper...
Merci d'avance pour vos aides,
Oups93