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 sur un trigger


Sujet :

PL/SQL Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Points : 24
    Points
    24
    Par défaut Probléme sur un trigger
    Je souhaiterai créer un trigger sur une table (po_requisition_lines_all )
    qui alimentera un champs par un autre de la même table de la même ligne

    1) j'ai crée un trigger after Insert rows
    qui prend la valeur :NEW.champ1 := NEW.CHAMP2
    je rçoit une erreur à la compilation
    2) j'ai crée un trigger before insert
    le champ n'est pas alimenté

    J'ai plus d'idée

  2. #2
    Membre éclairé Avatar de philcero
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2007
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 528
    Points : 773
    Points
    773
    Par défaut
    Tu peux poster le code de ton BEFORE INSERT s.v.p ?

    Plus les informations de version Oracle & OS ce serait parfait...
    Philippe CEROU,

    Architecte Systèmes & Bases de données.

  3. #3
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Citation Envoyé par izghad_06 Voir le message
    je rçoit une erreur à la compilation
    Et nous, on doit la deviner ?
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  4. #4
    Membre éclairé Avatar de philcero
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2007
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 528
    Points : 773
    Points
    773
    Par défaut
    Et nous, on doit la deviner ?
    Je lance ma boule de cristal et hop : Affecter une colonne dans un AFTER INSERT (:new.toto := ...) n'est tout simplement pas possible vu que les colonnes sont en READ ONLY à cette étape...

    Philippe CEROU,

    Architecte Systèmes & Bases de données.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Voilà
    l'erreur de compilation

    After trigger

    Creation of the trigger scifr_po_req_lineS_all_air_1
    CREATE OR REPLACE TRIGGER scifr_po_req_lines_all_air_1

    ERROR at line 1:
    ORA-04084: cannot change NEW values for this trigger type


    pour le BEFORE Insert champ n'est pas alimenté.

    je voulais recopié l'ID de table dans un autre champ
    L'ID etant une séquence je pense que c'est pour ça.

    La séquence n'etant pas encore générée (il insert une donnée vide )

    Merci de votre réactivité

  6. #6
    Membre éclairé Avatar de philcero
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2007
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 528
    Points : 773
    Points
    773
    Par défaut
    Si tu postais ton code BEFORE INSERT, je pense qu'on avancerait un petit peu...

    Philippe CEROU,

    Architecte Systèmes & Bases de données.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE OR REPLACE TRIGGER scifr_po_req_lines_all_bir_1
       before INSERT ON PO_REQUISITION_LINES_ALL
       REFERENCING NEW AS NEW OLD AS OLD
       FOR EACH ROW
    BEGIN
     
      :NEW.OKE_CONTRACT_HEADER_ID := :NEW.REQUISITION_LINE_ID ;
    EXCEPTION
                WHEN OTHERS
                THEN
                   NULL;
     END scifr_po_req_lines_all_bir_1;
    c'est un environnement oracle application

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 29
    Points : 24
    Points
    24
    Par défaut résolu
    J'ai contourné le probléme

    on créant une table temporaires et deux triggers BEFORE et un AFTER insert


    OK Merci de votre aide

  9. #9
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Ca me parait bien compliqué pour un problème aussi simple

    A quel moment est alimenté ta colonne REQUISITION_LINE_ID ?
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème sur un trigger d'insertion
    Par houda_dd dans le forum PL/SQL
    Réponses: 6
    Dernier message: 31/01/2012, 02h14
  2. Problème sur un trigger
    Par anthonyplay dans le forum PL/SQL
    Réponses: 3
    Dernier message: 30/11/2010, 16h51
  3. Problème sur un trigger
    Par dnboa dans le forum PL/SQL
    Réponses: 7
    Dernier message: 21/11/2008, 16h22
  4. Problème sur les triggers
    Par loic20h28 dans le forum Langage SQL
    Réponses: 15
    Dernier message: 22/01/2008, 18h37
  5. Problème sur un Trigger
    Par Isa31 dans le forum Oracle
    Réponses: 35
    Dernier message: 28/10/2005, 09h48

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