oracle定时器job

引用
https://blog.csdn.net/sinat_35626559/article/details/78912828
https://www.cnblogs.com/hoojo/p/oracle_procedure_job_interval.html

创建测试表

create table t_test_renbing(
current_time timestamp
);

创建测试用存储过程

create or replace procedure pro_job_test_renbing
as
begin
--dbms_output.put_line('系统时间:' || to_char(sysdate, 'dd-mm-yyyy hh24:mi:ss'));
insert into t_test_renbing values(sysdate);
commit;
end;

运行过程,进行测试

begin
pro_job_test_renbing;
commit;
end;

创建job,将job注册到dba_jobs表中定时启动job调用存储过程

declare
job1 number; --此处自动生成jobid
begin
dbms_job.submit(job1, 'pro_job_test_renbing;', sysdate, 'sysdate+20/(246060)');--每10秒插入一条记录
commit;
end;

declare
job1 number; --此处自动生成jobid
begin
dbms_job.submit(job => job1 ,
what => 'outuser.pro_job_test_renbing;',
next_date => TRUNC(SYSDATE)+8/24,
interval => 'TRUNC(sysdate) + 1 +8/(24)');
commit;
end;

查询job视图

select * from dba_jobs;
select * from all_jobs;
select * from user_jobs;

查询运行中的job

select * from dba_jobs_running;

手动调用job

begin
dbms_job.run(464);--和select * from user_jobs; 中的job值对应,看what对应的过程
end;

停止job

begin
dbms_job.broken(jobId,true,next_date); /停止一个job,jobId, job的ID,里面参数true也可是false,next_date(某一时刻停止)也可是sysdate(立刻停止)。 /
commit;
end;

-修改JOB

begin
dbms_job.change(62 ,job_country_warnRecord;', sysdate,'sysdate+2/(24*60)' );
commit;
end;

修改job的间隔时间

begin
dbms_job.interval(job,interval); /job job的ID,interval: 计算下一次任务执行的时间表达式/
commit;
end;

修改job的下次执行时间

begin
dbms_job.next_date(job,next_date); /job: job 的ID;nex_date:要修改后的计算下一次执行的时间表达式/
commit;
end;

修改定时任务 job 要执行的操作

begin
dbms_job.what('newProcedures();'); /newProcedures(); 要更改的新操作名称/
commit;
end;

删除job

begin
dbms_job.remove(463);--和select * from user_jobs; 中的job值对应,看what对应的过程
commit;
end;

转载于:https://www.cnblogs.com/keyboardone/p/9258325.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值