Bonjour,
Sous Oracle 9i, j'ai une erreur quand je tente d'accéder à la vue V$SESSION dans un trigger.
Cette version du trigger fonctionne :
mais si j'enlève les commentaires sur le curseur de V$SESSION, l'erreur retournée est :
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 CREATE OR REPLACE TRIGGER GPI.trg_suvalidh_mouche_delete AFTER DELETE ON suvalidh FOR EACH ROW DECLARE l_osuser varchar2(30); l_machine varchar2(64); l_program varchar2(48); BEGIN -- SELECT OSUSER, MACHINE, PROGRAM -- INTO L_OSUSER, L_MACHINE, L_PROGRAM -- FROM V$SESSION -- WHERE AUDSID = USERENV('SESSIONID'); INSERT INTO suvalidh_mouchard (ladate, action, matricule, lot, domcom, periode, calcule, cumulper, cumultot, valoper, valotot, qualiac, osuser, machine, program) VALUES (SYSDATE, 'S', :old.matricule, :old.lot, :old.domcom, :old.periode, :old.calcule, :old.cumulper, :old.cumultot, :old.valoper, :old.valotot, :old.qualiac, l_osuser, l_machine, l_program); END;
Par contre, le code suivant fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 PL/SQL: ORA-00942: table or view does not exist
Quelqu'un a-t-il une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 DECLARE l_osuser varchar2(30); l_machine varchar2(64); l_program varchar2(48); BEGIN SELECT OSUSER, MACHINE, PROGRAM INTO L_OSUSER, L_MACHINE, L_PROGRAM FROM V$SESSION WHERE AUDSID = USERENV('SESSIONID'); end;
merci
Partager