创建每天运行的 oracle 调度程序作业

And*_*rew 4 oracle scheduled-tasks dbms-scheduler job-scheduling

我想创建每天20:00运行 30 分钟的oracle 调度程序作业。此作业将从KPI_LOGS表中删除行,因为该表包含大量数据并且它会继续增长。我已经在 oracle sql developer 中为这样的工作创建了以下脚本,但不确定这是否正确,因为我是调度程序工作概念的新手。

    BEGIN
        DBMS_SCHEDULER.CREATE_JOB (
                job_name => '"RATOR_MONITORING"."CROP_KPI_LOGS"',
                job_type => 'PLSQL_BLOCK',
                job_action => 'DELETE FROM KPI_LOGS WHERE CAST(TIMESTAMP AS DATE) < (SYSDATE  - 28);',
                number_of_arguments => 0,
                start_date => NULL,
                repeat_interval => 'FREQ=DAILY;INTERVAL=30',
                end_date => NULL,
                enabled => FALSE,
                auto_drop => FALSE,
                comments => 'CROP_KPI_LOGS');    

        DBMS_SCHEDULER.SET_ATTRIBUTE( 
                 name => '"RATOR_MONITORING"."CROP_KPI_LOGS"', 
                 attribute => 'logging_level', value => DBMS_SCHEDULER.LOGGING_OFF);



    DBMS_SCHEDULER.enable(
             name => '"RATOR_MONITORING"."CROP_KPI_LOGS"');
END;
Run Code Online (Sandbox Code Playgroud)

dav*_*100 5

repeat_internal 不正确,您拥有的内容将每 30 天运行一次。每天晚上 8 点跑步去...

FREQ=DAILY; BYHOUR=20
Run Code Online (Sandbox Code Playgroud)

你不能规定它会运行多长时间,只要你的 DELETE 语句需要