【问题标题】:Oracle Job Scheduler doesn't repeat the job_actionOracle Job Scheduler 不会重复 job_action
【发布时间】:2014-01-17 11:32:48
【问题描述】:

我想每 5 分钟重复一次作业。我有一个测试表,我用随机日期填充。如果有比 SYSDATE-5 更早的日期,我想删除它们。以下代码仅在我第一次启动调度程序时有效,并且它永远不会再次重复 job_action:

BEGIN
SYS.DBMS_SCHEDULER.CREATE_JOB (
        job_name => '"AUTHMGR"."Test2"',
        job_type => 'PLSQL_BLOCK',
        job_action => 'BEGIN DELETE FROM TEST WHERE TESTDATE < SYSDATE-5;END;',
        number_of_arguments => 0,
        start_date => SYSDATE,
        repeat_interval => 'FREQ=MINUTELY;INTERVAL=5',
        end_date => NULL,
        job_class => '"SYS"."DEFAULT_JOB_CLASS"',
        enabled => TRUE,
        auto_drop => FALSE,
        comments => 'Test');
END; 
/

我是否使用了错误的 FREQ 和错误的 INTERVAL 的 repeat_interval?

我在 Oracle SQL Developer 中使用调度程序。

【问题讨论】:

  • 您如何确定作业没有再次运行 - 通过查看您的 TEST 表或查询作业日志?
  • 你可能也想提交。这个 dba_scheduler_jobs 的内容是什么?
  • 我正在查看我的 TEST 表,但没有看到任何变化。我关闭了开发人员并再次打开,看到中继器确实发生了。我需要用 COMMIT 语句扩展我的代码吗?我在哪里提交 COMMIT? END之后

标签: oracle oracle-sqldeveloper jobs dbms-scheduler


【解决方案1】:

问题出在 INSERT 语句上。 INSERT 后没有 COMMIT。

【讨论】:

    猜你喜欢
    • 2014-02-01
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多