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

Oracle Discussion :

[9.2.0.5] ORA-04088: error during execution of trigger DIEU_ASIA


Sujet :

Oracle

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2003
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2003
    Messages : 148
    Points : 118
    Points
    118
    Par défaut [9.2.0.5] ORA-04088: error during execution of trigger DIEU_ASIA
    Bonjour,

    Nous avons un problème avec un trigger.
    Nous avons une table qui contient un champ CLOB. Lors de l'insertion dans cette table nous utilisons la méthode empty_clob() pour remplir ce champ (ce champ est donc renseigné après le INSERT via un dbms_lob.Write(...) ). Or nous voudrions créer un trigger qui se place sur les insertions de cette table, et qui modifie un champ de la table au moment de l'insertion en fonction du contenu de ce champ de type CLOB. Le problème est que ce trigger lève une exception Oracle du type :

    [06/12/2007 11:16:04.615 - 5 ms] {7} <E2BSenderOracle/E2BSenderOracle.cpp:167> Probleme lors de la connection Oracle : Error Code : 22275, Error Message : ORA-22275: invalid LOB locator specified
    ORA-04088: error during execution of trigger DIEU_ASIA
    ORA-06512: at "TS2EDA", line 6
    ORA-06512: at line 1
    PS : ce message contient des erreurs liées au code, l'erreur oracle qui nous intéresse est à la 3eme ligne

    En effet, lorsque le trigger essaie d'accéder au champ de type CLOB (le champ se nomme 'xml') le champ n'est pas encore renseigné d'où l'erreur.

    Avez-vous une idée de comment faire un trigger dans ce cas, ou y-a-t-il une autre solution que nous ne connaissons pas pour modifier un champ d'une table en fonction du contenu d'un autre champ de type CLOB.

    Voici ci-dessous la structure du trigger DIEU_ASIA:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE OR REPLACE TRIGGER DIEU_ASIA
    BEFORE INSERT ON DIEU
    FOR EACH ROW
    when 
    (NEW.SYSTEM = 'GL' OR NEW.SYSTEM = 'ORC')
    BEGIN
           IF(:NEW.XML LIKE '%<Broker>CDCMTK</Broker>%') THEN
                :NEW.SYSTEM := :NEW.SYSTEM || 'Asie';
           END IF;
    END;
    /

    la structure de la table DIEU est:

    ID VARCHAR2(24) NOT NULL,
    SYSTEM VARCHAR2(20) NOT NULL,
    XML CLOB NULL,
    ISSTREAMED CHAR(1) DEFAULT 0 NULL,
    ISDONE CHAR(1) DEFAULT 0 NULL,
    DATEINSERT DATE NULL

    le package TS2EDA est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE OR REPLACE PACKAGE RISKV52D.TS2EDA AS
    	function insertExec( n VARCHAR2, sys VARCHAR2) return CLOB;
    	procedure xml2xpath;
    	procedure execStream( id in VARCHAR2, xml in CLOB, sys in VARCHAR2) as language java
    	name 'ts2eda.streaming.ExecStreamer.streamXML(java.lang.String, oracle.sql.CLOB, java.lang.String)';
    	procedure logError(id in VARCHAR2, sys in VARCHAR2, msg in VARCHAR2);
    	procedure flagExec(eid in VARCHAR2, sys VARCHAR2);
    	procedure flagExecWithValue(eid in VARCHAR2, sys VARCHAR2, flag NUMBER);
    	procedure insertExecInfos (eid in VARCHAR2, sys VARCHAR2);
    END TS2EDA;
    /

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075

Discussions similaires

  1. LINK : error : Internal error during ReadSymbolTable
    Par stof dans le forum Visual C++
    Réponses: 11
    Dernier message: 07/01/2008, 10h46
  2. Réponses: 3
    Dernier message: 05/12/2007, 19h59
  3. Pb ora-12549 tres dure à resoudre
    Par schumi101 dans le forum Oracle
    Réponses: 13
    Dernier message: 15/06/2006, 13h15
  4. Réponses: 2
    Dernier message: 30/08/2005, 14h11
  5. erreur ora-12801 : error signaled in parallel query server
    Par dngaya dans le forum Administration
    Réponses: 5
    Dernier message: 15/04/2004, 16h25

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