IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Problème CLOB dans trigger


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 73
    Par défaut Problème CLOB dans trigger
    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;

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Que est-ce que la procédure de_pack_editique.insert_matable fait ? Elle insert dans la même table que le trigger ?
    Comment l'enregistrement est crée dans la table qui possède le trigger ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 73
    Par défaut
    La procédure insert le contenu dans une autre table. Le but est de scinder le CLOB en X champs de varchar de 4000.

    Mon problème c'est que quand je fais le DBMS_LOB.substr ça marche bien pour les 4000 premiers mais ensuite mon résultat est vide.

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Comment l'insert est fait ? Voilà par exemple mon trigger
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    create or replace trigger ai_t_clob
    after insert on t_clob
    for each row
    begin
      dbms_output.put_line(DBMS_LOB.substr(:new.doc,100,4001));
    End;
    Dans mon test ça semble bien se passer
    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
     
    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 
    Connected as mni
     
    SQL> set serveroutput on
    SQL> desc t_clob
    Name Type    Nullable Default Comments 
    ---- ------- -------- ------- -------- 
    ID   INTEGER                           
    DOC  CLOB    Y                         
     
    SQL> insert into t_clob select 2, doc from t_clob where id = 1;
     
    eurs destines a la mise a jour
                           de 
                           supressio
     
    1 row inserted
     
    SQL>

Discussions similaires

  1. Problème Update dans un trigger After Delete
    Par gouzou38 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 16/05/2011, 15h52
  2. [SQL SERVER 2005]problème requête dans un trigger
    Par Kropernic dans le forum Développement
    Réponses: 14
    Dernier message: 02/03/2010, 18h20
  3. Problème requete avec into dans trigger
    Par Neji44 dans le forum PL/SQL
    Réponses: 4
    Dernier message: 21/06/2007, 16h06
  4. Comparaison CLOB dans un trigger DB2
    Par rapha51 dans le forum DB2
    Réponses: 7
    Dernier message: 28/05/2007, 21h36
  5. Problème d'exportation d'un clob dans fichier XML
    Par Fredifredo dans le forum SQL
    Réponses: 4
    Dernier message: 07/03/2007, 13h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo