1 使用电子邮件通知
作业电子邮件通知功能允许向现有作业添加电子邮件通知,以便将作业发生的感兴趣事件通过电子邮件发送到指定的电子邮件地址。对于每个作业,可以为不同的事件添加通知。可以将邮件通知发送给多个收件人。
要启用邮件通知功能,必须:
- 设置EMAIL_SERVER调度属性。
- 可选地,使用EMAIL_SENDER调度程序属性为电子邮件通知指定默认发件人电子邮件地址。
DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE
(‘email_server’,‘host[:port]’); - 创建作业后,执行DBMS_SCHEDULER。ADD_JOB_EMAIL_NOTIFICATION过程为作业添加一个或多个通知。
DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE
(‘email_sender’,‘valid email address’);
数据字典支持*_SCHEDULER_NOTIFICATIONS视图的电子邮件通知。
2 添加和删除电子邮件通知
DBMS_SCHEDULER.ADD_JOB_EMAIL_NOTIFICATION ( job_name IN VARCHAR2, recipients IN VARCHAR2, sender IN VARCHAR2 DEFAULT NULL, subject IN VARCHAR2 DEFAULT dbms_scheduler.default_notification_subject, body IN VARCHAR2 DEFAULT dbms_scheduler.default_notification_body, events IN VARCHAR2 DEFAULT 'JOB_FAILED,JOB_BROKEN,JOB_SCH_LIM_REACHED, JOB_CHAIN_STALLED,JOB_OVER_MAX_DUR', filter_condition IN VARCHAR2 DEFAULT NULL); DBMS_SCHEDULER.REMOVE_JOB_EMAIL_NOTIFICATION ( job_name IN VARCHAR2, recipients IN VARCHAR2 DEFAULT NULL, events IN VARCHAR2 DEFAULT NULL);
复制
解释:
使用DBMS_SCHEDULER添加一个或多个作业电子邮件通知。ADD_JOB_EMAIL_NOTIFICATION过程。只要作业生成任何列出的事件,就会将电子邮件发送到指定的收件人地址。作业会被自动修改以引发这些事件。如果指定了筛选条件,那么只有匹配FILTER_CONDITION中的规范的事件才会生成电子邮件消息。
如果没有设置EMAIL_SERVER调度器属性,或者指定的作业不存在,则此过程将失败。调用该过程的用户必须是作业的所有者,具有CREATE ANY job system权限,或者已被授予该作业的ALTER权限。
通知电子邮件的主题可以包含以下变量,这些变量的值将被替换:%job_owner%, %job_name%, %event_type%, %event_timestamp%, %log_id%, %error_code%, %error_message%, %run_count%, %failure_count%, %retry_count%, %job_subname%, %job_class_name%。
通知电子邮件消息体可以包含在主题中有效的任何变量。
以逗号分隔的事件列表不能为空。
如果filter_condition为NULL(默认值),则指定事件的所有出现都将通过电子邮件发送到所有指定的收件人地址。
使用DBMS_SCHEDULER删除指定作业的一个或多个电子邮件通知。REMOVE_JOB_EMAIL_NOTIFICATION过程。