Bonjour,
J'ai un traitement PL SQL qui exécute plusieurs requêtes insert.
le script insère des données dans une table de travail ( date_traitement / table_rempli / nb_ligne / flag_trait )
J'ai un souci avec la méthode de reprise :
Comme j’insère une ligne après le traitement de chaque de requête. Comment puis-je identifier les tables qui ne sont pas traités
J’ai pensé à modifier mon script en utilisant la fonction IF NOT EXISTS (SELECT
Nom_table, date_traitement, flag
FROM RDO_LOG WHERE Nom_Table = '' AND Date_Traitement = ) INSERT
Qu'en pensez-vous ?
Voici mon script :
Code sql : 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 PROCEDURE ALIM_BASE IS LN$Cpt PLS_INTEGER ; PROCEDURE LOG (pe_table IN VARCHAR2, pe_dml IN VARCHAR2, pe_nblignes IN NUMBER, pe_date IN DATE DEFAUT SYSDATE , pe_flag IN INTEGER ) IS BEGIN INSERT INTO table_log [TABLE, NB_INSEREES, DATE_TRT, FLAG] END LOG; BEGIN SELECT COUNT(*) INTO LN$Cpt FROM TABLEA ; DBMS_OUTPUT.PUT_LINE( TO_CHAR( LN$Cpt ) || ' enreg_MASS') ; LOG('TABLEA', 'Count(*)', LN$Cpt); INSERT INTO TABLEA ( JOUR,ENT,BAT) SELECT JOUR,ENT,BAT FROM X UNION SELECT JOUR,ENT,BAT FROM Y; LOG('TABLEA', 'INSERT', SQL%ROWCOUNT, 1); END ALIM_BASE;
merci de votre aide
Partager