oracle定时任务6,Oracle创建定时任务以及常见问题

这篇博客介绍了如何在Oracle数据库中创建、执行和删除存储过程,特别是用于更新销售订单的SALESORDERUPTEST过程。同时,展示了如何设置定时任务来周期性执行该存储过程,并检查了job_queue_processes参数以确保任务能正常执行。此外,还涉及到任务调度可能出现的问题及解决方案。
摘要由CSDN通过智能技术生成

---创建存储过程

create or replace procedure SALESORDERUPTEST as

begin

update salesorderitems soi set INVENTORYFLAG='0',InventoryQuantity='0'

where salesorderid in (select salesorderid from salesorders where createdate >='20191009' );

commit;

end;

---定时任务

declare

job number;

BEGIN

DBMS_JOB.SUBMIT(

JOB => job, /*自动生成JOB_ID*/

WHAT => 'SALESORDERUPTEST;', /*需要执行的存储过程名称或SQL语句*/

NEXT_DATE => sysdate+3/(24*60), /*初次执行时间-下一个3分钟*/

INTERVAL => 'trunc(sysdate,''mi'')+1/(24*60)' /*每隔1分钟执行一次*/

);

commit;

end;

--立即执行,不必等待

begin

DBMS_JOB.RUN(8); /*8 job的id*/

end;

---删除任务

begin

/*删除自动执行的job*/

dbms_job.remove(8);  /*8 为job的id*/

--查询创建作业的id

select * from user_jobs

创建作业后有时会无法自动执行,需要查看job的临界值是多少,

select value from v$parameter where name like '%job_queue_processes%'

cc112bf7fab7147861f54bbeadcd4be1.png

42953abd617bb28e4d90267f003b0d3b.png

我的是100,当任务数超过100,即id=101时,相关job就不会执行,可以将任务数改大些

alter system set job_queue_processes =100;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值