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


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 76
    Par défaut probléme avec un trigger
    bonjour à tous

    j'éssaye de crée un trigger, l'objectif est de maitre à niveau une table qui à pour nom par ex "teste" à une autre table "teste2" qui se trouve dans un schema different
    je m'éxplique :
    schema1 --> table "teste"
    schema2 --> table "teste2"

    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
    26
    27
    28
    conn system/manager
    GRANT ADMINISTER DATABASE TRIGGER TO schema1;
    disc
    CONNECT schema1/pass@server
    CREATE OR REPLACE TRIGGER TRG_BDR_teste1
    after DELETE
    ON teste
    FOR EACH ROW
    Begin
    delete from schema2.teste2 where nom=:OLD.nom and prenom=:OLD.prenom;
    End;
    /
    CREATE OR REPLACE TRIGGER TRG_BDR_teste2
    after update
    ON teste
    FOR EACH ROW
    Begin
    update schema2.teste2 set nom=:new.nom,prenom=:new.prenom where nom=:OLD.nom and prenom=:OLD.prenom;
    End;
    /
    CREATE OR REPLACE TRIGGER TRG_BDR_teste3
    after insert
    ON teste
    FOR EACH ROW
    Begin
    insert into schema2.teste2 values (:new.nom,:new.prenom);
    End;
    /
    aprés exécution, il me renvoie ces erreurs
    Avertissement : Déclencheur créé avec erreurs de compilation.
    Avertissement : Déclencheur créé avec erreurs de compilation.
    Avertissement : Déclencheur créé avec erreurs de compilation.


    apparument la notion de trigger marche seulement dans le même schema, si quelqu'un à une idée je suis preneur.

    Merci par avance.

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    ajoute show err après chaque création de trigger pour connaitre les erreurs ou consulte USER_ERRORS.

    sinon, OLD et NEW ne sont utilisables que sur les triggers BEFORE il me semble

    enfin, merci de penser aux balises CODE.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 76
    Par défaut
    Merci pour ta réponse,

    je veut juste précisé que ce code marche très bien dans le même schéma.
    aprés avoir rajouter l'instructiont show err, il me renvoie ceci:

    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
    26
    Avertissement : Déclencheur créé avec erreurs de compilation.
     
    Erreurs pour TRIGGER TRG_BDR_TESTE1 :
     
    LINE/COL ERROR
    -------- -----------------------------------------------------------------
    2/1      PL/SQL: SQL Statement ignored
    2/20     PL/SQL: ORA-00942: Table ou vue inexistante
     
    Avertissement : Déclencheur créé avec erreurs de compilation.
     
    Erreurs pour TRIGGER TRG_BDR_TESTE2 :
     
    LINE/COL ERROR
    -------- -----------------------------------------------------------------
    2/1      PL/SQL: SQL Statement ignored
    2/15     PL/SQL: ORA-00942: Table ou vue inexistante
     
    Avertissement : Déclencheur créé avec erreurs de compilation.
     
    Erreurs pour TRIGGER TRG_BDR_TESTE3 :
     
    LINE/COL ERROR
    -------- -----------------------------------------------------------------
    2/1      PL/SQL: SQL Statement ignored
    2/20     PL/SQL: ORA-00942: Table ou vue inexistante
    comme si il n'arrive pas à reconnaître la table schema2.teste2

  4. #4
    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
    Par défaut
    Le user schema1 a-t-il les droits sur les tables de schema2 ? Si oui les a-t-il hérité par un role ou directement par un grant ?

    Il faut savoir qu'en Pl/Sql les droits doivent être donné directement (grant). Les droits hérités par des roles ne sont pas pris en compte.

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 76
    Par défaut
    Effectivement c'été ça, en rajoutant le grant schema2.teste2 au schema1 pour toutes les opérations : ça marche merveilleusement bien.

    Merci beaucoup.

Discussions similaires

  1. problème avec les triggers
    Par jakcam dans le forum Administration
    Réponses: 4
    Dernier message: 04/03/2008, 11h37
  2. Problème avec un trigger
    Par fayerne dans le forum PL/SQL
    Réponses: 2
    Dernier message: 13/01/2008, 00h36
  3. Réponses: 4
    Dernier message: 27/11/2007, 15h32
  4. Problème avec un trigger...
    Par nasgektw dans le forum Développement
    Réponses: 3
    Dernier message: 28/04/2006, 17h41
  5. [T-SQL] problème avec un trigger
    Par karine77 dans le forum Adaptive Server Enterprise
    Réponses: 3
    Dernier message: 26/09/2005, 10h45

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