如何创建ORACLE的JOBS
本人接触ORACLE时间不长,关于JOBS不懂 但现在要用,能否帮忙写个JOBS
功能就是选择一个固定的时间,在这个时间ORACLE启动这个JOBS,JOBS的工作就是进行一个SQL查询,把查询结果写到一个表里面去
谢谢了 现在时间急 因此不能慢慢摸索了-:(
------解决方案--------------------把要实现的功能做成一个存储过程,在JOB中调用就可以了
如果不知道如何建立JOB,可以看看下面这个存储过程,使用它来创建JOB
create or replace procedure submit_job(
v_time IN Number,
v_proc_name In Varchar2,
v_jobid out number)
AS
l_jobid binary_integer;
l_time Number;
BEGIN
--调用submit_job(v_time, v_proc_name);如提交一个job设置在每天23:45运行存储过程 "copy_data ",
--则调用submit_job(23.75, 'copy_data; '),其中0.75为45/60.
l_time := ROUND(v_time/24,3);
dbms_job.submit
(
job => l_jobid,
what => v_proc_name,
next_date => TRUNC(sysdate) + l_time,
Interval => 'trunc(sysdate) + ' || to_char(l_time), --防止执行时间越来越后
--Interval => 'sysdate +1 ', --必须大于当时的时间。
no_parse => NULL
);
COMMIT;
--dbms_output.put_line( 'JobID = '||l_jobid);
v_jobid := l_jobid;
END submit_job;