一、创建存储过程
CREATE OR REPLACE PROCEDURE test_proc IS --test_proc存储过程名称
BEGIN
delete from xxx t where rownum < 100; --需要执行的sql语句
COMMIT;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Exception happened,data was rollback');
ROLLBACK;
END;
二、定制定时执行任务(在PL/SQL中使用“命令窗口”,每5分钟执行一次),"切记要提交事务""切记要提交事务""切记要提交事务"
var job_num number;
begin
dbms_job.submit(:job_num,'test_proc;',SYSDATE,'sysdate+5/24/60');
end;
/
三、查看任务状态
select * from DBA_JOBS
不自动执行定时任务的解决办法
SHOW PARAMETER JOB; --如果为0的话,肯定不执行
ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 1000; --设置JOB_QUEUE_PROCESSES的值必须大于所执行任务的id
exec dbms_ijob.set_enabled(true); --最后一招,未验证过。
执行以上命令后,观察"NEXT_DATE"字段值,如有变化则说明已开始自动执行任务。
版权声明:本文为sy_litao原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。