【问题标题】:Oracle Job deleted after executionOracle Job 执行后删除
【发布时间】:2016-12-02 00:09:40
【问题描述】:

我在使用 oracle 11g

我创建了一个名为“MyJob”的作业,在固定的日期/小时运行。

工作做得很好。

当作业在固定日期/小时正确执行时,该作业显然已从表 dba_scheduler_jobs 中删除,我使用此查询进行了验证:

SELECT owner, job_name, enabled FROM dba_scheduler_jobs;

我的问题是为什么这份工作被“删除”了?

我的工作创建脚本:

BEGIN
DBMS_SCHEDULER.CREATE_JOB (
   job_name             => 'MyJobTest',
   job_type             => 'PLSQL_BLOCK',
   job_action           => 'BEGIN insert into test values (''01'',sysdate); END;',
   start_date           => '01/12/16 17:00:00,000000000 +01:00',
   repeat_interval      => NULL, 
   end_date             => NULL,
   enabled              =>  TRUE,
   comments             => ' Insert into Test Table');
END;

/

提前致谢。

【问题讨论】:

  • 你能展示你的代码来创造一个工作吗?
  • 这是一项插入表格测试的工作:我用创建脚本更新了我的帖子。

标签: oracle oracle11g


【解决方案1】:

如果您没有指定repeat_interval 并且auto_drop 参数设置为true(如果您根本不指定该参数,则为默认值),Oracle 将在作业运行后丢弃该作业。一般来说,如果您要创建一个只运行一次的作业,那么永远离开它是没有意义的。

您可以通过将 auto_drop 值指定为 false 来告诉 Oracle 不要自动删除作业。

DBMS_SCHEDULER.CREATE_JOB (
   job_name             => 'MyJobTest',
   job_type             => 'PLSQL_BLOCK',
   job_action           => 'BEGIN insert into test values (''01'',sysdate); END;',
   start_date           => '01/12/16 17:00:00,000000000 +01:00',
   repeat_interval      => NULL, 
   end_date             => NULL,
   enabled              =>  TRUE,
   auto_drop            => false,
   comments             => ' Insert into Test Table');

【讨论】:

  • 谢谢贾斯汀。我明白了:)
猜你喜欢
  • 2022-11-30
  • 1970-01-01
  • 1970-01-01
  • 2015-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-15
  • 1970-01-01
相关资源
最近更新 更多