【问题标题】:oracle scheduler job not running (after enabling it)oracle 调度程序作业未运行(启用后)
【发布时间】:2020-04-30 02:04:09
【问题描述】:

我通过以下方式创建了一个调度程序作业:

BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name           =>  'update_sales_1',
job_type           =>  'STORED_PROCEDURE',
job_action         =>  'test_job',
start_date         =>  systimestamp,
repeat_interval  =>  'FREQ=SECONDLY;INTERVAL=10',
end_date           =>  '20-NOV-2021 07.00.00 PM Australia/Sydney',
auto_drop          =>   FALSE,

comments           =>  'My new job');
END;
/

存储过程test_job 将记录插入到表中。
创建 JOB 后,我启用它并等待 20 秒并检查表。 我没有看到插入的记录。

【问题讨论】:

  • 该过程在插入语句之后是否有提交?
  • 是的,它有@Boneist
  • USER_SCHEDULER_JOB_RUN_DETAILS 对您的工作有何影响?另外,这个工作的USER_SCHEDULER_JOBS 中的next_run_date 是什么?
  • select * from USER_SCHEDULER_JOB_RUN_DETAILS 显示没有选择行,next_run_date 是 13-JAN-20 06.01.03.000000000 AM -05:00
  • 假设您的作业已正确设置,也许是其他原因(例如参数设置得太低而无法运行作业)。尝试按照this FAQ 中的建议进行操作

标签: oracle plsql dbms-scheduler


【解决方案1】:

你应该添加一个参数enabled => TRUE,默认是FALSE

如果您想在创建作业后启用它,您也可以使用:
DBMS_SCHEDULER.ENABLE(name => 'update_sales_1');

如果您的作业确实运行了,但您没有看到任何发生的事情,如果出现问题,您可以查看作业运行详细信息:
SELECT * FROM dba_scheduler_job_run_details WHERE job_name = UPPER('update_sales_1') ORDER BY actual_start_date;

【讨论】:

    猜你喜欢
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 2018-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多