【问题标题】:How do I schedule a stored procedure to run daily at certain time?如何安排存储过程在每天的特定时间运行?
【发布时间】:2018-04-29 18:29:50
【问题描述】:

我正在尝试在 Oracle 中安排一个存储过程,它应该在每天的某个时间运行,例如晚上 11:59

 BEGIN
 DBMS_SCHEDULER.CREATE_JOB (
 job_name           =>  'BLANKET_WO',
 job_type           =>  'STORED_PROCEDURE',
 job_action         =>  'AAKPID.BLANKET_WO_PROC',
 repeat_interval    =>  'FREQ=DAILY;BYHOUR=23;BYMINUTE=59');
 END;
 /

这段代码会起作用吗?

【问题讨论】:

    标签: oracle oracle11g database-administration dbms-scheduler


    【解决方案1】:

    试试这个,它应该可以工作:

     BEGIN
     DBMS_SCHEDULER.CREATE_JOB (
     job_name           =>  'BLANKET_WO',
     job_type           =>  'STORED_PROCEDURE',
     job_action         =>  'AAKPID.BLANKET_WO_PROC',
     start_date         =>  '16-nov-2017 11:50:00 pm',
     repeat_interval    =>  'FREQ=DAILY;BYHOUR=23;BYMINUTE=59',
     enabled            =>  true
    );
     END;
     /
    

    【讨论】:

    • 这会在第 59 分钟运行吗?
    • @AmeyaLokhande 是的,您可以在不久的将来尝试您的当地时间。
    • 注意:没有必要指定start_date,除非您出于某种原因想要延迟它 - 默认行为是在启用作业后立即开始。此外,start_date 不是字符串参数(它是timestamp with time zone),因此依赖字符串的隐式转换并不理想。
    猜你喜欢
    • 2016-11-24
    • 2022-01-24
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    相关资源
    最近更新 更多