Bonjour,
J'essaie de faire un insert sur une table utilisant un trigger qui s'appuie sur une séquence. En effet, l'insertion s'effectue à partir d'un résultat select. C'est à dire que le nombre de lignes de l'insert sera égal au nombre de lignes du select.
Cependant, mon insertion se fait toutes les 2 lignes. C'est à dire qu'il saute à chaque fois une ligne du select. Ce qui n'est pas normal. Je ne sais pas si ceci est du au trigger rattaché à la table ou bien.
Le tout se trouve dans une procédure.
Voici une partie du code (la plus intéressante pour mon problème).
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
 
l_query := 'SELECT count(eim.ROW_ID) 
                            FROM SIEBEL.'||TABLE_EIM||' eim
                            WHERE IF_ROW_BATCH_NUM='||var_batch_num_neg||'
                             AND eim.ROW_ID NOT IN (SELECT distinct RUN_REJET_EIM_ROW_ID FROM ASTRE_RUN_REJET)';
                EXECUTE IMMEDIATE l_query INTO var_nb_enregistrement;
           -- Insetion de lignes pour la table de rejet.
           dbms_output.put_line('nb_enregistrement:'||var_nb_enregistrement);
           --dbms_output.put_line(l_query);
                FOR i in 1..var_nb_enregistrement LOOP
                    -- Récupération du row_id de la table eim (ligne en rejet).                                
                   l_query := 'SELECT ROW_ID FROM (SELECT eim.ROW_ID, ROWNUM ligne 
                               FROM SIEBEL.'||TABLE_EIM||' eim
                               WHERE IF_ROW_BATCH_NUM='||var_batch_num_neg||'
                               AND eim.ROW_ID NOT IN (SELECT distinct RUN_REJET_EIM_ROW_ID FROM ASTRE_RUN_REJET))
                               WHERE ligne ='||i;                  
                    EXECUTE IMMEDIATE l_query INTO var_row_id_eim;
                    dbms_output.put_line('ROW_ID:'||var_row_id_eim); 
                    INSERT INTO ASTRE.ASTRE_RUN_REJET(RUN_ETAPE_ID,                                                                                          
                                                      RUN_ACTION_ID,                                                                                                                                                                                               
                                                      RUN_EXECUTION_ID,                                                                                                                                                                                                 
                                                      RUN_REJET_CRITICITE,                                                                                                                                                                                                    
                                                      RUN_REJET_DESC,                                                                                                                                                                                                    
                                                      RUN_REJET_DATA,                                                                                                                                                                                                          
                                                      RUN_REJET_EIM_TABLE,                                                                                                                                                                                                
                                                      RUN_REJET_EIM_ROW_ID 
                                                     ) VALUES(IDENTIFIANT_ETAPE,
                                                              var_action_id,
                                                              var_exec_id,
                                                              CRITICITE,
                                                              LIBELLE_REJET,
                                                              CLE_REJET,
                                                              TABLE_EIM,
                                                              NULL                                               
                                                              );
                    COMMIT;