Update en masse d'une table
Bonjour,
J'ai créé une procédure stockée dans laquelle je fais des mise à jour d'une table "table_calcul" (ligne par ligne), et j'aimerais savoir comment faire une mise à jour en masse de cette table.
La table table_calcul question contient 20 millions de lignes et la mise à jour dure en moyenne 3h.
Ci dessous ma procédure :
Code:
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
|
PROCEDURE calcul_test (p_ind IN VARCHAR2,
p_montant IN NUMBER,
P_appel IN OUT aaaa) AS
v_deb DATE;
v_fin DATE;
v_der DATE;
BEGIN
IF (p_ind = aaa) THEN
v_der := bbbb;
END IF;
v_deb := P_appel.jou + 1;
WHILE (v_deb <= v_der)
LOOP
IF (v_deb = v_der) THEN
P_appel.aa := P_appel.bbb + ccct;
END IF;
UPDATE table_calcul
SET colone1 = P_appel.mnt1,
colonne2 = P_appel.mnt2,
coluonne 3 = dat_der
WHERE colonne 4 = v_deb;
end loop ;
end calcul_test;
/ |
J'ai pensé à la fonctionnalité bulk collect ? mais, je ne sais pa si c'est la bonne solution, ni comment procéder
Merci par avance pour vos réponses.