oracle 作业调度频率,DBMS_JOB 自动作业调度

能不能写一个存储过程 每隔一定时间自动运行(定时器)

dbms_job.submit() 提交作业到系统 指定它什么时候运行

--DBMS_JOB 作业调度包(指定PL/SQL过程定时自动执行)

--初始化参数init.ora

job_queue_processes = 1 --作业队列进程的个数(最大36个)

job_queue_interval = 60 --进程每隔多少时间扫描作业队列(60s)

processes=150 --并发用户的数量

open_cursors =300 --存储过程中使用游标的数量

--DBMS_JOB包中的方法

procedure submit(job out binary_integer,

what in varchar2,

next_date in date default sysdate,

interval in varchar2 default null,

no_parse in boolean default false);

procedure change(job in binary_integer,

what in varchar2,

next_date in date,

interval in varchar2);

procedure what(job in binary_integer,

what in varchar2);

procedure next_date(job in binary_integer,

next_date in date);

procedure interval(job in binary_integer,

interval in varchar2);

--实际例子

create sequence temp_seq

start with 1;

create table temp_table(

num_col number,

char_col varchar2(50));

create or replace procedure tempinsert is

begin

insert into temp_table(num_col,char_col)

values (temp_seq.nextval,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));

commit;

end;

--注册每10秒运行一次

declare

v_job number;

begin

dbms_job.submit(v_job,'tempinsert();',sysdate,'sysdate + (10 / (24 * 60 * 60))');

commit;

end;

--删除作业

dbms_job.remove(job in binary_integer);

--查看作业信息

select * from user_jobs;

select * from dba_jobs;

内置程序包 大约有25个 都是sys拥有[@more@]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值