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 :
J'ai pensé à la fonctionnalité bulk collect ? mais, je ne sais pa si c'est la bonne solution, ni comment procéder
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
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; /
Merci par avance pour vos réponses.
Partager