oracle - 有没有办法让 Oracle 作业自行禁用?

标签 oracle plsql dbms-scheduler

我正在努力做到这一点:

declare
  Contador number;

begin
 ATUALIZAR_VAL_MAT_PENDENTES(Contador);

 if Contador = 0 then
  dbms_scheduler.disable('JOB_ATUALIZAR_VAL_MAT_PEND');
  end if;
end;

当计数器返回零时,它将禁用此作业。但是,我得到:

"ORA-27478: o 作业 "SPEDO.JOB_ATUALIZAR_VAL_MAT_PEND"está em execução"

最后一位表示 “它正在执行” .

所以,我认为这是因为作业正在运行并且无法自行关闭。

我认为另一种方法可能是更改结束日期,但我似乎找不到执行此操作的语法。

任何人都可以帮忙吗?这是可以实现的吗?

最佳答案

感谢@Shankar 的帮助。这就是我设法完成我想要做的事情的方式:

declare
  Contador number;

begin
 ATUALIZAR_VAL_MAT_PENDENTES(Contador);

 if Contador = 0 then
   dbms_scheduler.set_attribute('JOB_ATUALIZAR_VAL_MAT_PEND', 'end_date', systimestamp + 1);
  end if;
end;

我已经想到了这一点,但是当智能感知弹出说“值”参数是“ bool 值”时,我什至没有尝试向它传递日期。现在它工作正常,但有人认为我必须补充:

如果您尝试将结束日期提前一小时或一分钟,这将不起作用。您需要实际更改日期,否则它会给您 ORA-27483:“string.string”的 END_DATE 无效。

关于oracle - 有没有办法让 Oracle 作业自行禁用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27804275/

相关文章:

oracle - 如何在窗口中安排 Oracle DBMS 作业

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

sql - plsql错误无效号码

python 和甲骨文

oracle - 在 Oracle/ODP.NET 中查询 USER_OBJECTS 时遇到问题

oracle - 从 oracle : Best practices 生成大型 xml 文件

java - 如何同步 PL/SQL 调用的 java 方法

sql - 代表 oracle 中随时间变化的 AM 或 PM 值

oracle - Oracle 中的 UTF-8 字符

oracle - DBMS_SCHEDULING 重复间隔 - 半小时,9-5,周一至周五