如何在每个星期一04:00创建DBMS_JOB

时间:2017-06-28 13:38:41

标签: oracle

我正在尝试使用脚本

创建在04:00每个星期一执行的作业
declare
 job number;
begin
  sys.dbms_job.submit( job,
                      'CALC_LAST_WEEK_STAT();',
                      to_date('03-07-2017 04:00:00', 'dd-mm-yyyy hh24:mi:ss'),
                      trunc('NEXT_DAY(TRUNC(SYSDATE), "MONDAY") + 4/24'),'dd-mm-yyyy hh24:mi:ss');
  commit;
end;
/

但我有错误PLS-00306:调用'SUBMIT'时参数的数量或类型错误

1 个答案:

答案 0 :(得分:0)

如果查看the documentation for DBMS_JOB.SUBMIT(),您会看到interval的数据类型为VARCHAR2。您正在传递日期,而SUBMIT()期望公式用于计算下一次运行的时间。

那就是

q'[(NEXT_DAY(TRUNC(SYSDATE), 'MONDAY') + 4/24)]'