我正在尝试创建通知以在工作中断时发送电子邮件。这是工作:
declare
jobno number;
begin
dbms_job.submit( jobno,
'test_job_procedure;',
SYSDATE,
'SYSDATE + 1/24 /12');
commit;
end;
这是凭据的配置:
BEGIN
DBMS_SCHEDULER.create_credential (credential_name => 'MAILSERVER_CREDENTIAL',
username => 'test@gmail.com',
password => 'test');
END;
BEGIN
DBMS_SCHEDULER.set_scheduler_attribute ('email_server', 'smtp.gmail.com:587');
DBMS_SCHEDULER.set_scheduler_attribute ('email_sender', 'test@gmail.com');
DBMS_SCHEDULER.set_scheduler_attribute ('email_server_credential', 'MAILSERVER_CRED
ENTIAL');
END;
这是电子邮件通知调度程序:而不是 job_name,但在 dbms_job 中,作业名称是不一致的数字,当我重新启动作业时,它会得到新的数字,所以我把 WHAT 作为可以识别该作业的东西。我不知道这是否可行,因为最后我收到错误,但无论如何当我运行此选择时
SELECT *
FROM all_scheduler_global_attribute
我得到这个结果https://imgur.com/a/FnQJ7
这是工作电子邮件通知:
BEGIN
DBMS_SCHEDULER.ADD_JOB_EMAIL_NOTIFICATION (
what => 'test_job_procedure',
recipients => 'test1@gmail.com',
sender => 'test@gmail.com',
subject => 'Scheduler Job Notification',
body => '%event_type% occurred at %event_timestamp%. %error_message%',
events => 'JOB_FAILED, JOB_BROKEN');
END;
有人可以通过这个告诉我我在哪里犯错吗?