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 trigger UTL_Mail


Sujet :

Oracle

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Février 2012
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Problème trigger UTL_Mail
    Bonjour,

    j'ai créé un trigger pour envoyer un mail lorsqu'une ligne est ajoutée (après MAJ) dans une table. Cela marche très bien.
    c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    BEGIN
     UTL_MAIL.send(sender => 'toto@mail.fr',
        recipients => 'toto@mail.fr',
        cc => NULL,
        bcc => 'toto@mail.fr',
        subject => 'Test envoi de mail',
        message => 'Test : envoyé en automatique!');
    END;
    Cependant, je souhaite appliquer ce trigger sur une autre table, pour envoyer un mail lors de la mise à jour de la table, mais cela ne m'envoi rien...
    Auriez vous une idée ?

    merci de votre aide

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Ne jamais faire du non-transactionnel (envoi d'un mail) dans du transactionnel (trigger sur une table). Utilisez DBMS_JOB pour cela.

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Février 2012
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par mnitu Voir le message
    Ne jamais faire du non-transactionnel (envoi d'un mail) dans du transactionnel (trigger sur une table). Utilisez DBMS_JOB pour cela.
    Merci pour la réponse. Cependant, ce sont des trigger différents. Donc pourquoi cela marche sur une table et pas l'autre ? faut il vraiment que je passe par DBMS_JOB ?
    (désolé suis tres tres novice en oracle...) je suis ne train de lire la doc sur DBMS_JOB

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par hukeseba Voir le message
    ...faut il vraiment que je passe par DBMS_JOB ?...
    C’est un conseil et non pas une obligation. Un utilisateur insère un enregistrement dans votre table. Le trigger se déclenche et envoie le mail disant par exemple « votre demande a été prise en charge ». Par la suite l’utilisateur fait rollback mais le mail a été déjà envoyé. L’utilisation du dbms_job permet de retrouver le comportement transactionnel car le job est programmé et exécuté que si le commit à été exécuté.

    Concernant votre problème, moi j'en ai une autre : « ma voiture n’a pas démarrée ce matin, dit-moi pourquoi! ». Avec peu d’information c’est très difficile de se prononcer. C’est également votre cas ! Comment quelqu’un pourrait vous dire pourquoi votre trigger ne marche pas avec seulement les informations que vous avez fournies ?

Discussions similaires

  1. [Oracle 8i] Problème Trigger-Table
    Par lper dans le forum SQL
    Réponses: 4
    Dernier message: 03/04/2007, 17h16
  2. Problème Triggers croisés
    Par banban dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 05/02/2007, 23h44
  3. Problême trigger PL SQL
    Par JonathanB dans le forum Administration
    Réponses: 5
    Dernier message: 24/12/2006, 19h23
  4. Problème Trigger SQL Server
    Par RodEpsi dans le forum Développement
    Réponses: 6
    Dernier message: 25/05/2006, 15h03
  5. problème trigger
    Par zeurkk dans le forum Oracle
    Réponses: 2
    Dernier message: 20/12/2005, 18h59

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