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 :

[8i] utl_smtp et trigger


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 49
    Par défaut [8i] utl_smtp et trigger
    Bonjour à tous.

    J'ai un problème avec un trigger after update. Ce dernier doit envoyer un mail hors si le serveur de réponds pas alors il bloque tout. Impossible de reprendre la main.

    J'ai pensé à mettre un timeout à utl_smtp.open_connection => pas possible car je suis sous la 8i.

    Autre solution : faire un ping du serveur smtp en pl/sql.

    ma question : comment faire un ping en pl/slq ?

    Merci pour vos réponses.

  2. #2
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    Bonjour,

    peut etre ajouter UTL_SMTP.TRANSIENT_ERROR

    Code sql : 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    DECLARE
      c UTL_SMTP.CONNECTION;
     
      PROCEDURE send_header(name IN VARCHAR2, header IN VARCHAR2) AS
      BEGIN
        UTL_SMTP.WRITE_DATA(c, name || ': ' || header || UTL_TCP.CRLF);
      END;
     
    BEGIN
      c := UTL_SMTP.OPEN_CONNECTION('smtp-server.acme.com');
      UTL_SMTP.HELO(c, 'foo.com');
      UTL_SMTP.MAIL(c, 'sender@foo.com');
      UTL_SMTP.RCPT(c, 'recipient@foo.com');
      UTL_SMTP.OPEN_DATA(c);
      send_header('From',    '"Sender" <sender@foo.com>');
      send_header('To',      '"Recipient" <recipient@foo.com>');
      send_header('Subject', 'Hello');
      UTL_SMTP.WRITE_DATA(c, UTL_TCP.CRLF || 'Hello, world!');
      UTL_SMTP.CLOSE_DATA(c);
      UTL_SMTP.QUIT(c);
    EXCEPTION
      WHEN utl_smtp.transient_error OR utl_smtp.permanent_error THEN
        BEGIN
          UTL_SMTP.QUIT(c);
        EXCEPTION
          WHEN UTL_SMTP.TRANSIENT_ERROR OR UTL_SMTP.PERMANENT_ERROR THEN
            NULL; -- When the SMTP server is down or unavailable, we don't have
                  -- a connection to the server. The QUIT call will raise an
                  -- exception that we can ignore.
        END;
        raise_application_error(-20000,
          'Failed to send mail due to the following error: ' || sqlerrm);
    END;

  3. #3
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 49
    Par défaut
    Merci pour t'as réponse mais cela ne marche pas. En effet, j'ai stopper le serveur SMTP et mon programme plante et me rend pas la main malgré la gestion d'exception.

    Est-dû au fait qu'Oracle 8i est incapable de savoir si le serveur est OK ou pas?

Discussions similaires

  1. Trigger et UTL_SMTP
    Par yazidi_marwen dans le forum PL/SQL
    Réponses: 1
    Dernier message: 31/05/2012, 13h49
  2. [power designer et Sybase] trigger
    Par mr_qno dans le forum Sybase
    Réponses: 4
    Dernier message: 12/07/2006, 18h32
  3. Trigger ??
    Par XDeus dans le forum Développement
    Réponses: 6
    Dernier message: 31/03/2003, 09h44
  4. [PostgreSQL] Refus de STATEMENT dans un trigger
    Par alex2205 dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/03/2003, 12h51
  5. [Comparatif] Procédures stockées, triggers, etc.
    Par MCZz dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/08/2002, 12h27

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