Schedule job即指定时间运行某一个procedure,本质上是一个object,job的属性可以随时修改。
Job 权限
grant create job to somebody;
Job 创建
begin
dbms_scheduler.create_job (
job_name => 'my_job_name',
job_type => 'STORED_PROCEDURE',
job_action => 'procedure_to_call', --存储过程名
start_date => sysdate,
repeat_interval => 'FREQ=MINUTELY;interval=10', --每隔5分钟运行一次
comments => 'schedule one job every 5 mins'
);
end;
/
Job 查询
select job_name,job_type,job_action,start_date,repeat_interval,state,enabled
from user_scheduler_jobs;
Job 修改job属性:修改repeat时间为5分钟每次
begin
DBMS_SCHEDULER.SET_ATTRIBUTE('SYNC_UP_SCENARIO_RUN_STATUS','repeat_interval','FREQ=MINUTELY;interval=5');
DBMS_SCHEDULER.ENABLE('SYNC_UP_SCENARIO_RUN_STATUS');
commit;
end;
Job 启用
begin
dbms_scheduler.enable('my_job_name');
end;
/
Job 运行
begin
dbms_scheduler.run_job('my_job_name',TRUE); -- true代表同步执行
end;
/
Job 删除
begin
dbms_scheduler.drop_job(job_name => 'my_job_name',force => TRUE);)
end;
/
参考:http://www.blogjava.net/javabloger/archive/2008/03/14/186206.html