作业自动提交的例子,用的是 Oracle 的老朋友——DBMS_JOB。每 24 小时跑一次,调个过程啥的方便。你只需要一段提交语句,加个SYSDATE + 1就能定时了,语法不复杂,写完直接commit,搞定。嗯,这种方式现在不如DBMS_SCHEDULER灵活,但胜在轻量,老项目里还蛮常见的。

变量声明、作业提交、提交事务一整套流程给得挺清楚,适合新手摸索数据库里的定时任务。像这样:

VARIABLE jobno number;
begin
  DBMS_JOB.SUBMIT(:jobno,
    'act.cal(''scott'',''emp'',null,30)',
    SYSDATE, 'SYSDATE + 1');
  commit;
end;
/

哦对了,还有不少相关资料可以挖,像是Oracle 定时任务解析Quartz 实现这些都挺不错,帮你拓展一下思路。如果你还在用Oracle 11g之类的老版本,这些技巧还蛮实用的。

建议你在调试时先print jobno看看作业号,有时候调完不执行,是权限或参数写错,查日志能省不少事。如果你刚好在接触数据库定时任务,这类例子挺值得收藏的,简单直接。