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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
create or replace
procedure BO_UP
is
UPCLE TB_UP.CLE%TYPE;
UPL TB_LL.L%TYPE;
UPV TB_LL.V%TYPE;
UPD TB_LL.D%TYPE;
UPF TB_LL.F%TYPE;
UPC TB_LL.C%TYPE;
Cursor C_UP
is
SELECT TB_UP.CLE,
TB_LL.L,
TB_LL.V,
TB_LL.D,
TB_LL.F,
TB_LL.C
FROM TB_UP,
TB_LCUP,
TB_LC,
TB_LL
WHERE (TB_UP.CLE = TB_LCUP.CLE_TB_UP)
AND (TB_LCUP.CLE_TB_LC = TB_LC.CLE)
AND (TB_LC.LL = TB_LL.CLE);
begin
/* récupération des UP */
Open C_UP;
Loop -- boucle sur les UP
begin
Fetch C_UP into UPCLE,
UPL,
UPV,
UPD,
UPF,
UPC; -- lecture d'une ligne
UPDATE ARMDBA.BO_LF -- mise à jour de la table BO_LF
SET IDUP = UPCLE
WHERE (BO_LF.L = UPL)
AND ((BO_LF.V = UPV) AND (BO_LF.V is not null))
AND ((BO_LF.D BETWEEN UPD AND UPF))
AND (BO_LF.O = UPC);
Exit
when C_UP%NOTFOUND;
EXCEPTION
/* gestion des exceptions */
When OTHERS then
dbms_output.put_line( 'Code erreur : ' || to_char( SQLCODE )) ;
dbms_output.put_line( 'libellé erreur : ' || to_char( SQLERRM )) ;
end;
End Loop;
Close C_UP;
end BO_UP; |
Partager