Bonjour, ce code-ci fonctionne parfaitement :
Je voudrais modifier le trigger pour qu'il n'evoie un mail qu'une fois par jour. J'ai donc crée une table qui contient un compteur (number_of_errors) et un champ date.
Je voudrais donc faire un if qui si la derniere entrée a comme date la date d'aujourd'hui incrémente le compteur (update) et sinon rajoute une entrée.
J'ai testé plein de truc mais sans résultats... merci de m'aider
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CREATE OR REPLACE TRIGGER mail_alerter BEFORE INSERT ON BPM_LOG_DETAIL FOR EACH ROW WHEN (new.entry between 'F' and 'Fatal error*') BEGIN sendmail('RLPR','****@****.com',:new.entry); END;
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 CREATE OR REPLACE PROCEDURE sendmail (sender IN VARCHAR2, recipient IN VARCHAR2, message IN VARCHAR2) IS mailhost VARCHAR2(50) := '************'; mail_conn utl_smtp.connection; BEGIN mail_conn := utl_smtp.open_connection(mailhost, 25); utl_smtp.helo(mail_conn, mailhost); utl_smtp.mail(mail_conn, sender); utl_smtp.rcpt(mail_conn, recipient); utl_smtp.open_data(mail_conn); utl_smtp.write_data(mail_conn, TO_CHAR(SYSDATE, 'DD-MON-YYYY HH24:MI:SS')); utl_smtp.write_data(mail_conn,' : '); utl_smtp.write_data(mail_conn, message); utl_smtp.close_data(mail_conn); utl_smtp.quit(mail_conn); END;
Partager