ITPub博客

首页 > 数据库 > Oracle > oracle job

oracle job

原创 Oracle 作者:wangzh3 时间:2006-05-26 19:15:49 0 删除 编辑

经常会有一些定时任务需要对oracle数据库进行操作,这个处理常见的有两种办法:

1、unix/linux的定时任务,写一个shell或者perl等程序

2、job

以前由于开发规范的要求,大多是按照第一种来写,实际上我觉得job更合适。因为如果oracle数据库服务器的操作系统是windows的话,按照第一种实现方式的话可能需要网络操作,如果网络中断,则定时任务无法处理。

并且oracle可以对文件系统进行操作,可以通过包来写文件,所以job是一个能够完成绝大部分的操作。

今天又用到了,就简单的记录了一下,以后可以参考。

[@more@]

variable job number;
begin
sys.dbms_job.submit(job => :job,
what => 'begin your_sp_name; end;',
next_date => to_date('26-05-2006 03:17:38', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'sysdate+1');
commit;
end;
/

上面的这段代码执行过后,就可以看到生成的job的jobid,其中your_sp_name是你的存储过程的名称,如果带参数,需要将参数传入。

然后使用

select next_date,what,interval,broken from user_jobs

就可以看到当前用户下的所有job的下次执行时间,执行的内容,时间间隔,job状态等信息。

当然,使用shell也很简单

sqlplus -i -n username/password@sidname<

your_sp_name;

EOF

把上面的代码另存为cronOracleJob.sh

chmod +x cronOracleJob.sh

加入crontab即可(不同的系统可能需要在前面加上#!/sh的路径)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/47869/viewspace-838063/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    301
  • 访问量
    10875979