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 :

Problème de trigger


Sujet :

Oracle

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Par défaut Problème de trigger
    Bonjour à tous, ceci est mon premier post sur le forum

    Alors voila j'ai un problème avec un trigger que j'essais de créé donc voici mon code de création :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE or replace TRIGGER TRIGGER_TEST
    AFTER INSERT ON owbrtlabo.dest_calendrier1
    FOR EACH ROW
    begin
    insert into archives.Dest_calendrier values(:new.dest_ferme,:new.dest_libelle);
    end;
    En fait, j'ai une edit Dest_calendrier dans le schéma owbrtlabo et dans le schéma archives et je voudrais lorsqu'il y a une insertion dans owbrtlabo que cette insertion soit répeter dans archives. Je pensais que mon trigger le ferait mais j'ia des erreur de compilation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    LINE/COL ERROR
    -------- -----------------------------------------------------------------
    2/1      PLS-00201: l'identificateur 'DEST_CALENDRIER' doit être déclaré
    2/1      PL/SQL: SQL Statement ignored
    Je pense que c'est une erreur bête car ceci est mon premier trigger merci de votre attention et bonne journée.



    Edit : En fait je vien d'avoir un autre problème sur ce trigger et ej ne comprend pas pourquoi... Mon trigger est correct ( pas d'erreur de compilation ) mais lorsque j'ajoute une donnée dans ma table j'ai une erreur qui dit :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SQL> insert into dest_calendrier values ('14/12/1982','Anniv cop chris');
    insert into dest_calendrier values ('14/12/1982','Anniv cop chris')
                *
    ERREUR à la ligne 1 :
    ORA-04098: Déclencheur  'ARCHIVES.TEST_TRIG' non valide. Echec de la
    revalidation

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    Vérifiez que l'utilisateur owbrtlabo a bien le droit de faire un insert dans la table archives.Dest_calendrier.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Par défaut
    Oui je lui ai deja attribuer les droits. Le problème ne vient donc pas de là.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Par défaut
    Ton erreur est bizarre ...


    En testant , ça marche :
    conn a/a@test
    create table t1 (n varchar2(1));
    grant insert on t1 to b;

    conn b/b@test
    create table t2(n varchar2(1));

    CREATE or replace TRIGGER TRIGGER_TEST
    AFTER INSERT ON b.T2
    FOR EACH ROW
    begin
    insert into a.t1 values(:new.n);
    end;
    /

    insert into t2 values ('1');
    commit;
    select count(*) from a.t1;

    ==> 1 ligne ...

    Est-ce que ta table archives.Dest_calendrier existe vraiment ??
    vérifie l'orthographe ..

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Par défaut
    Bon le problème est résolut... J'avais donnée les droits ARCHIVE > OWBRTLABO au lieu de ARCHIVE < OWBRTLABO

    Merci de votre aide

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Par défaut
    En fait je vien d'avoir un autre problème sur ce trigger et ej ne comprend pas pourquoi... Mon trigger est correct ( pas d'erreur de compilation ) mais lorsque j'ajoute une donnée dans ma table j'ai une erreur qui dit :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SQL> insert into dest_calendrier values ('14/12/1982','Anniv cop chris');
    insert into dest_calendrier values ('14/12/1982','Anniv cop chris')
                *
    ERREUR à la ligne 1 :
    ORA-04098: Déclencheur  'ARCHIVES.TEST_TRIG' non valide. Echec de la
    revalidation

  7. #7
    Membre Expert Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Par défaut
    Tu devrais peut-être mettre le schéma auquel appartient la table dans ton code.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Par défaut
    J'ai le même problème en précisant le schéma.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SQL> insert into owbrtlabo.dest_calendrier values ('14/12/1982','Anniv cop chris');
    insert into owbrtlabo.dest_calendrier values ('14/12/1982','Anniv cop chris')
                          *
    ERREUR à la ligne 1 :
    ORA-04098: Déclencheur  'ARCHIVES.TEST_TRIG' non valide. Echec de la
    revalidation

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    les droits de lecture sont probablement donnés via un ROLE, il faut les donner directement pour que ça fonctionne

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Par défaut
    Je vien de lire l'article sur les roles,

    - j'utilise le logiciel TOAD mais je ne vois pas ou interragir avec les role existant dedans. Par contre a partir de se logiciel j'ai donner tous les droit de modification, insertion, etc... entre les tables "directement" mais je ne sais pas si c'est ce que vous entendiez par directement.

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    c'est ça en effet

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Par défaut
    Donc j'ai deja donné les droit "directement", ( j'ai donné tous les droit a archive sur owbrtlabo.dest_calendrier et tout les droit a owbrtlabo sur archives.dest_calendrier) Et donc le problème est quand même là.


    Par contre pour donner les droits j'ai le choix de les donnés avec Grant option ou pas ( Grant Option : Yes ou Grant Option : No) sa a peut être un rapport mais vu que je n'ai jamais entendu parler de grant option dans mes cours et bien je suis un peu embeté...

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Par défaut
    Désoler pour le double post j'ai trouver ou etait le problème, il restait un trigger non valide sur la table archives et donc lors de l'insertion sur la table archives il causait une erreur...

    Merci a tous de votre aide et bonne journée

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

Discussions similaires

  1. PL/SQL problème sur Trigger
    Par kitsune dans le forum PL/SQL
    Réponses: 4
    Dernier message: 06/12/2005, 20h35
  2. [9i] problème avec trigger after logon
    Par Michael# dans le forum Oracle
    Réponses: 2
    Dernier message: 17/03/2005, 12h14
  3. [Interbase6] Problème de triggers
    Par emeraudes dans le forum Bases de données
    Réponses: 4
    Dernier message: 08/03/2005, 09h52
  4. [SQLPLUS] - Problème de Triggers Java
    Par farcis dans le forum Oracle
    Réponses: 7
    Dernier message: 23/12/2004, 09h21
  5. [PL/SQL] problème de trigger
    Par Chuck67 dans le forum Oracle
    Réponses: 14
    Dernier message: 09/12/2004, 23h17

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