当工作被打破时,我试图创建通知以发送电子邮件 . 这是工作:

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;

有人可以通过这个告诉我在哪里犯错误吗?