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 :
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 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;
A noter que je suis en oracle 10g, Windows server 2003 et que ça marche en oracle 8.0.5, Windows 2000 server.
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;
Quels droits manqueraient-ils ?
Merci de bien vouloir m'aider.
dbfm78
Partager