关于PLSQL中JOB定时任务的问题

begin sys.dbms_job.change(job =

给你一个我自己写的完整的(用PLSQL->文件->新建->测试窗口)
DECLARE
jobno BINARY_INTEGER;
instno number;
p_job_queue_processes VARCHAR2(512);
p_interval VARCHAR2(200);
p_next_date DATE;
s_next_date VARCHAR2(50);
begin
select instance_number into instno from v$instance;
-- jobno := 1512; 手工指定jobno
p_interval := 'trunc(sysdate,''HH24'')+(SELECT TRUNC(TO_CHAR(sysdate,''MI'')/30)/48 FROM DUAL)'; -- 间隔

p_next_date := TO_DATE('20080910 13:45:00','RRRRMMDD HH24:MI:SS');--trunc(sysdate,'HH24') + 1/4/24; -- 下次执行时间,date类型
s_next_date := to_char(p_next_date,'RRRR-MM-DD HH24:MI:SS'); -- 下次执行时间,字符串类型
/* -- 创建新job
dbms_job.submit(jobno
, 'statspack.snap(7);'
, p_next_date -- trunc(sysdate,'HH24') + 1/24
, p_interval -- 'trunc(sysdate,''HH24'')+(SELECT TRUNC(TO_CHAR(sysdate,''MI'')/30)/48 FROM DUAL)';
, TRUE, instno);
*/
dbms_job.change(jobno, '要执行的程序名称;' -- 比如statspack.snap; -- 收集统计信息
, p_next_date
, p_interval
);--, TRUE, instno);
-- dbms_job.remove(jobno); --jobno -- 移除job

-- commit;
end;
--- 完成后,可以用select * from dba_jobs dj where dj.jobno=xxx 检查状态
温馨提示:答案为网友推荐,仅供参考
相似回答