Bonjour,

Je travaille sur Oracle 9i. Et j'ai un problème avec des CLOB. Je cherche à découper mon CLOB pour le passer à une procédure dans un package. Ce découpage s'effectue dans un trigger.

Mon premier paquet de 4000 est bien rempli alors que le 2eme paquet est vide alors qu'il devrait contenir des données. Je ne comprends pas pourquoi.

Si quelqu'un pouvait m'aider, j'apprécierai beaucoup.

Voici le code ci dessous.

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
 
CREATE OR REPLACE TRIGGER montrigger
 
AFTER INSERT
   ON matable
   REFERENCING OLD AS OLD NEW AS NEW
   FOR EACH ROW
DECLARE
    v_n_numero_dossier                matable.n_numero_dossier%TYPE;
    v_l_commentaires                  CLOB;
 
BEGIN
 
    v_n_numero_dossier                 := :NEW.n_numero_dossier;
    v_l_commentaires                   := :NEW.L_COMMENTAIRES;
 
     de_pack_editique.insert_matable (p_n_numero_dossier           => v_n_numero_dossier,
                                      p_l_commentaires1            => DBMS_LOB.substr(v_l_commentaires,4000,1),
                                      p_l_commentaires2            => DBMS_LOB.substr(v_l_commentaires,4000,4001),
                                      p_l_commentaires3            => DBMS_LOB.substr(v_l_commentaires,4000,8001),
                                      p_l_commentaires4            => DBMS_LOB.substr(v_l_commentaires,4000,12001),
                                      p_l_commentaires5            => DBMS_LOB.substr(v_l_commentaires,4000,16001)                                                                            
                                                       );
 
END;