当前位置:Gxlcms > 数据库问题 > Oracle觸發器調用procedure寄信

Oracle觸發器調用procedure寄信

时间:2021-07-01 10:21:17 帮助过:13人阅读

Written by milo on 2017-03-09 *觸發器發送email */ CREATE OR REPLACE TRIGGER small_program_exception_afin AFTER INSERT ON small_program_exception FOR EACH ROW DECLARE l_html VARCHAR2(32767); v_station_name varchar(300); v_email_string varchar2(1000); v_program_name varchar2(300); v_station_code varchar(300); BEGIN /* dbms_output.put_line(‘new.station: ‘ || :new.station); dbms_output.put_line(‘new.program_id: ‘ || :new.program_id); dbms_output.put_line(‘new.occurred_time: ‘ || to_char(:new.occurred_time, ‘yyyy-mm-dd hh24:mm:ss‘)); dbms_output.put_line(‘new.program_id: ‘ || substr(:new.exception_message, 1, 32767)); */ BEGIN --獲取程式名稱、接收人email以及站名稱 select s.stn_name, m.mail_for_error, p.name,s.stn_code into v_station_name, v_email_string, v_program_name,v_station_code from tk_cust_prog_m m, tk_cust_prog_d d, station s, tk_programe p where m.custom_no = d.custom_no and m.custom_no = s.stn_code and d.prog_id = p.id and d.prog_id = :new.program_id and d.custom_no = :new.station; exception when no_data_found then raise_application_error(-20001, No data found.); --dbms_output.put_line(‘no_data_found‘); --dbms_output.put_line(‘v_email_string: ‘ || v_email_string); if (v_email_string is null or v_email_string = ) then raise_application_error(-20001, Errors email recipient should not be empty, please type the recipient‘‘s email address on the web-function); end if; END; l_html := <html> <head> <title></title> </head> <body> <p> Dear || v_station_code || </p> <p> This email is to notify you that an unexpected error occurred in the program. Please check it ASAP.</p> <p> Exception Message</p> <p> ------------------------------------------------------------------------------</p> <p> <b> || v_station_name || </b></p> <p> <b> || v_program_name || </b></p> <p> Posted on || to_char(:new.occurred_time, mm-dd-yyyy hh24:mm:ss) || </p> <p> || substr(:new.exception_message, 1, 32767) || </p> <p> ------------------------------------------------------------------------------</p> </body> </html>; send_mail(p_to => v_email_string, p_from => milo@***.com, -- ***@oecgroup.com p_subject => Program Occurred Errors Notice, p_text_msg => , p_html_msg => l_html, p_smtp_host => spam.***.com, p_account => milo@***.com, p_password => ***); END; /

 

Oracle觸發器調用procedure寄信

标签:end   address   begin   不同   pre   sub   htm   app   output   

人气教程排行