|
|
找到方法了,共享一下。
begin
dbms_scheduler.create_schedule
(schedule_name =>'S10',
start_date =>to_date('01:30:00','HH24:MI:SS'),
repeat_interval =>'freq=minutely; byhour=01,02,05,06,07; interval=40; bysecond=00;',
comments => 'interval=40 min');
end;
/
create or replace procedure pro_decodetab10 as
begin
insert into decodetab(id,time,pro_name)
select nvl(max(id),0)+1, sysdate, 'PRO_DECODETAB10' from decodetab
where pro_name='PRO_DECODETAB10';
commit;
end pro_decodetab10;
exec dbms_scheduler.drop_job('J_PRO_DECODETAB10');
begin
dbms_scheduler.create_job
(job_name => 'J_PRO_DECODETAB10',
job_type => 'PLSQL_BLOCK',
job_action => 'begin pro_decodetab10; end;',
schedule_name => 'S10',
enabled => TRUE);
end;
/
运行结果
SQL> select job_name, state, run_count, failure_count, last_start_date, next_run_date from user_scheduler_jobs;
JOB_NAME STATE RUN_COUNT FAILURE_COUNT LAST_START_DATE NEXT_RUN_DATE
------------------------------ --------------- ---------- ------------- -------------------- --------------------
J_PRO_DECODETAB10 SCHEDULED 7 0 2006-07-10 07:30:00 2006-07-11 01:30:00
9 rows selected.
SQL> select * from decodetab where pro_name='PRO_DECODETAB10' order by 2;
ID TIME PRO_NAME
---------- ------------------- ------------------------------
1 2006-07-10 01:30:00 PRO_DECODETAB10
2 2006-07-10 02:10:00 PRO_DECODETAB10
3 2006-07-10 02:50:00 PRO_DECODETAB10
4 2006-07-10 05:30:00 PRO_DECODETAB10
5 2006-07-10 06:10:00 PRO_DECODETAB10
6 2006-07-10 06:50:00 PRO_DECODETAB10
7 2006-07-10 07:30:00 PRO_DECODETAB10
7 rows selected.
SQL>
有些美中不足,假若我只想运行到6点10分,50的不想运行,还不知道怎么控制。9I的JOB则可以完全控制到这个点 |
|