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 :

Trigger invalide - PLS-00302


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 2
    Par défaut Trigger invalide - PLS-00302
    Bonjour,

    J'ai un problème avec un trigger invalide.
    L'erreur indiquée est PLS-00302 Le composant 'PACKAGE_SCH2' doit être déclaré;

    le schéma du trigger (schema1) est différent du schéma dans lequel se trouve la procédure de package (schema2) appelée dans le trigger.
    L'erreur ressemble à un problème de privilèges mais schema1 a le droit d'executer PACKAGE_ SCH2.

    Je ne comprend pas pourquoi j'ai cette erreur.

    Voici le trigger :

    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
    CREATE or REPLACE TRIGGER SCHEMA1.TRIG_SCH1
    AFTER UPDATE 
    OF 
    cola,colb,colc,cold,cole,colf,colg,colh,coli,
    	colj,colk,coll,colm,coln,colo
     
    ON SCHEMA3.TBL_SCH3
    FOR EACH ROW
    WHEN (new.colp in ('I','S','P'))
    DECLARE
    	nom_utilisateur 	VARCHAR2(40);
    BEGIN 
    	SELECT user into nom_utilisateur from dual ;
    	SCHEMA2.PACKAGE_SCH2.PROCEDURE_PCKG_SCH2('P','U',:new.id_usager,nom_utilisateur); 
    END;
    Et voici la procédure appelée dans le trigger

    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
    PROCEDURE PROCEDURE_PCKG_SCH2 
    (
    	param1 SCHEMA2.TABLE_SCH2.col3%type,
    	param2 SCHEMA2.TABLE_SCH2.col4%type,
    	param3 SCHEMA2.TABLE_SCH2.col5%type,
    	param4 SCHEMA2.TABLE_SCH2.col6%type
    ) IS
     
    	BEGIN
     
    		insert into SCHEMA2.TABLE_SCH2
    		(col1, col2, col3, col4 ,col5 ,col6)
    		values
    		(SCHEMA2.seq_sch2.nextval,SYSDATE, param1, param2, RTRIM(LTRIM(param3)) , param4);
     
    	END PROCEDURE_PCKG_SCH2;
    A noter que je suis en oracle 10g, Windows server 2003 et que ça marche en oracle 8.0.5, Windows 2000 server.

    Quels droits manqueraient-ils ?

    Merci de bien vouloir m'aider.

    dbfm78

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 41
    Par défaut
    Salut,

    je pense qu'il faut un grant execute on SCHEMA2.PACKAGE_SCH2.PROCEDURE_PCKG_SCH2 directement sur le user qui va exécuter le trigger

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/05/2010, 10h49
  2. Réponses: 3
    Dernier message: 26/02/2007, 15h02
  3. Réponses: 4
    Dernier message: 23/05/2006, 17h04
  4. TRIGGER Erreur PLS-00357
    Par fuhraih dans le forum Oracle
    Réponses: 6
    Dernier message: 19/04/2006, 10h20
  5. [Pl/Sql] PLS-00103 triggers
    Par madimane dans le forum Oracle
    Réponses: 2
    Dernier message: 14/03/2006, 07h11

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