Salut à tous,
J’ai une fonction stockée (table_check) dans la base de donnée qui contrôle toutes les tables d’un autre Schéma et stocke les résultats dans une table de contrôle (sum_insert, sum_update, sum_delete, sum_duplicat, etc…).
J’avais écris tous ceci dans un code. Mon chef veut maintenant pour chaque partie une fonction précise qui sera appelle et retournera le résultat correspondant pour chaque table.
Ci-joint la fonction mère
Voici le code qui lit les insertions de chaque table (where t_Flg = 'I' et fait un group by avec le nom de la table et le source_id)
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
35
36
37
38
39
40 create or replace FUNCTION F_table_check(p_source_id Tablecontrol.sd_id%TYPE) RETURN NUMBER IS --++++++++mes declarations --+++++++ Ouverture du cuseur BEGIN -- 1++++++++ Insertion des données primaires (issues des autres tables) dans la table de controle /*delete from ttest; commit; --2+++++++ Ouverture dun cuseur pour lire les données inserées dans la table de contrôle Loop -- 3++lecture des sum_insert de toutes les table ; -- 4++lecture des sum_update de toutes les table ; -- 5++ sum_delete de toutes les table ; -- 6++sum_duplicat de toutes les table ; End loop Fermeture du cuseur update table_check set sum_insert = c_val_ins, sum_update = c_val_upd, sum_delete = c_val_del, sum_duplicat = c_val_dub where Tablecontrol.sd_id = p_sd_id; commit; end loop; close l_cur; END LOOP; commit; END;
--+++++++ Comment transformer ce bout de code en fonction pour qu'il me retourne toujours le nombre insertion par table et l’appeler dans la fonction mère
Merci de votre aide.
J’ai fouillé dans le net et je n’ai pas trouver d’exemple d’appel d’une fonction par une autre en PL SQL
Merci
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 open l_cur for stmt_str using 'I'; loop fetch l_cur into c_val_ins; exit when l_cur%notfound; update table_check set sum_insert = c_val_ins where Tablecontrol.sd_id = p_sd_id; commit; end loop; close l_cur; END LOOP; commit; END;
fiona
Partager