Job/Procedure 到 PL/SQL 执行?

Job/Procedure to PL/SQL execution?

我有这个 PL/SQL 并且工作正常,也已发送电子邮件。

BEGIN
  FOR cur_rec IN
        (select JOB, SCHEMA_USER, WHAT from dba_jobs where Broken = 'Y') LOOP
    BEGIN
 SCHEMA2.send_mail(
            p_to        => 'receive@test.com',
            p_from      => 'send@test.com',
            p_subject   => 'JOB Report',
            p_message   => 'Job name is: ' || cur_rec.what,
            p_smtp_host => 'webmail.test.com');       
    END;
  END LOOP;
END;
/

我需要安排 PL/SQL 每 4 小时执行一次,但我不知道如何使用该代码创建作业或过程,我已经尝试了很多但仍然说:

Completed with warnings

任何构建作业or/and过程的帮助都将受到赞赏。

    begin
DBMS_SCHEDULER.CREATE_JOB (
   job_name=>'my_job',
   job_type=>'PLSQL_BLOCK',
   job_action=>
'BEGIN
  FOR cur_rec IN
        (select JOB, SCHEMA_USER, WHAT from dba_jobs where Broken = ''Y'') LOOP
    BEGIN
 SCHEMA2.send_mail(
            p_to        => ''receive@test.com'',
            p_from      => ''send@test.com'',
            p_subject   => ''JOB Report'',
            p_message   => ''Job name is: '' || cur_rec.what,
            p_smtp_host => ''webmail.test.com'');       
    END;
  END LOOP;
END;',
   start_date=>sysdate+1, --start tomorrow at this time
   repeat_interval=>'FREQ=HOURLY; INTERVAL=4', --repeat every 4 hours
auto_drop=>false
);
end;
/

查看文档以了解其他选项.. create job