为什么使用job:
Job允许用户提前调度和安排某一任务,使其能在指定的时间点或时间段内自动执行一次或多次,由于任务在数据库中被执行,所以执行效率很高。
Job 允许我们定制任务的执行时间,并提供了灵活的处理方式,还可以通过配置,安排任务在系统用户访问量少的时段内执行,极大地提高了工作效率。
例如,对于数据库日常的备份、更新、删除和复制等耗时长、重复性强的工作.
其他的就不说了,直接切入正题
---------------------------------test
--创建测试表
CREATE TABLE t_job(d Date);
SELECT * FROM t_job;
--作业执行的存储过程
CREATE OR REPLACE PROCEDURE pro_job
IS
BEGIN
INSERT INTO t_job Values(SYSDATE);
END;
--定时执行的作业
---在命令窗口执行
VARIABLE into_job NUMBER;
BEGIN
dbms_job.submit(
:into_job, --
'pro_job;',
SYSDATE,
'SYSDATE+1/1440'
);
END;
--这样作业就创建好了,执行作业
--在命令窗口执行
execute dbms_job.run(作业编号); commit;
其中这里的作业编号是oracle自动生成的,在创建job时就已生成。
--删除作业
execute dbms_job.remove(作业编号); commit;