【发布时间】: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