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 :

Utilisation de V$SESSION dans un trigger


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 17
    Points : 16
    Points
    16
    Par défaut Utilisation de V$SESSION dans un trigger
    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 :
    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;
    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
     
    PL/SQL: ORA-00942: table or view does not exist
    Par contre, le code suivant fonctionne :
    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;
    Quelqu'un a-t-il une idée ?

    merci

  2. #2
    Expert éminent sénior
    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
    Points : 19 075
    Points
    19 075
    Par défaut
    il faut faire un GRANT de la vue au owner du trigger.

  3. #3
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Tiens, j'ai posé la même question hier !!
    http://www.developpez.net/forums/sho...d.php?t=366790

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Effectivement. J'étais passé un peu vite sur ton post.

    merci à tous

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

Discussions similaires

  1. Utiliser Inserted ou Updated dans un Trigger
    Par olibara dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/11/2012, 11h37
  2. Utiliser variable de session dans header
    Par jcaspar dans le forum Langage
    Réponses: 2
    Dernier message: 20/05/2010, 01h16
  3. Utiliser un alter table dans un trigger
    Par randriano dans le forum PL/SQL
    Réponses: 11
    Dernier message: 31/10/2008, 09h47
  4. Réponses: 3
    Dernier message: 15/06/2006, 15h58
  5. [VB.NET] Utilisation des sessions dans Session_End ?
    Par San Soussy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/02/2005, 16h40

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