Oracle中的JOBS的使用

本文详细介绍了Oracle数据库中的JOBS管理,包括如何创建JOB、查看JOB状态、移除JOB以及初始化相关参数,如job_queue_processes的设置与调整。此外,还提到了常用的时间格式,并提供了参考资料链接供深入学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.创建JOB

declare
  job number;
BEGIN
  DBMS_JOB.SUBMIT(  
        JOB => job,    
        WHAT => 'pack_dw.pro_base(to_char(sysdate,''yyyy''));',--执行程序 
        NEXT_DATE => to_date('2020/10/17 00:00:00','YYYY/MM/DD hh24:mi:ss'),--第一次执行时间
        INTERVAL => 'sysdate+12/24' --每12小时执行一次
      );  
  COMMIT;
end;

--下一年
--'pack_dw.pro_jbase(to_char(add_months(sysdate,12),''yyyy''));'

2.查看JOB

SQL> select * from user_jobs;
在这里插入图片描述
在这里插入图片描述– 正在运行job
SQL> select * from dba_jobs_running;

3.移除JOB

 begin
      dbms_job.remove(166); /*参数是 job的id*/
      commit;
    end;

4.初始化相关参数

1)job_queue_process表示oracle能够并发的job的数量,当job_queue_process值为0时表示全部停止oracle的job。

2)查看job_queue_processes参数

select * from v$parameter where name=‘job_queue_processes’;

3)修改job_queue_processes参数
alter system set job_queue_processes = 10 scope=both;

5.常用时间格式

描述脚本
每12小时执行一次sysdate+12/24
每一秒执行一次sysdate + 1/(24 * 60 * 60)
每一分钟执行TRUNC(sysdate,‘mi’) + 1/ (24*60)
每天的凌晨1点执行TRUNC(sysdate) + 1 +1/ (24)
每周一凌晨1点执行TRUNC(next_day(sysdate,‘星期一’))+1/24
每月1日凌晨1点执行TRUNC(LAST_DAY(SYSDATE))+1+1/24
每季度的第一天凌晨1点执行TRUNC(ADD_MONTHS(SYSDATE,3),‘Q’) + 1/24
每年7月1日和1月1日凌晨1点ADD_MONTHS(trunc(sysdate,‘yyyy’),6)+1/24
每年1月1日凌晨1点执行ADD_MONTHS(trunc(sysdate,‘yyyy’),12)+1/24

参考文章https://www.jb51.net/article/92575.htm
https://blog.csdn.net/hunhun1122/article/details/78569034?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allsobaiduend~default-1-78569034.nonecase&utm_term=oracle%20%E4%B8%80%E4%B8%AAjob%E5%8F%AF%E4%BB%A5%E5%A4%9A%E6%AC%A1%E6%89%A7%E8%A1%8C%E4%B9%88&spm=1000.2123.3001.4430

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值