最近做一个电信项目用到了JOB,在此写个总结,以备日后之需。
用一个存储过程创建并执行JOB,代码如下:
CREATE OR REPLACE PROCEDURE P_TEST_JOB
IS
--判断任务是否已被创建,若任务被创建过,则 isExist > 0
isExist NUMBER := 0;
--归档任务标识
jobId NUMBER;
BEGIN
SELECT COUNT(*) INTO isExist FROM ALL_JOBS J WHERE J.WHAT = '过程名;';
--检查任务是否已被创建,如果已被创建,则不做操作
IF isExist = 0 THEN
--创建任务
DBMS_JOB.submit(jobId, --任务标识
'过程名;', --任务要执行的存储过程,后边的分号不可略
SYSDATE, --任务开始时间
'SYSDATE + 10/1440'); --任务执行周期,此处指每10分钟执行一次
COMMIT;
--运行任务
DBMS_JOB.run(jobId);
COMMIT;
END IF;
END;
执行此存储过程,在ORACLE运行的JOB列表里会出现新增的JOB,可以用
SELECT * FROM ALL_JOBS J WHERE J.WHAT = '过程名;'
来查看你刚刚创建JOB的执行情况。
分享到:
相关推荐
在Oracle数据库中,我们经常会用到定时器Job来让数据库...但是,Oracle定时器Job时间的处理上,千变万化,还是比较灵活的。本文我们总结了一些Oracle数据库定时器Job在各个时间段得写法,接下来我们就开始介绍这些。
这是一个关于oracle的数据库定时器,作用是每年的第一天的凌晨一时更新数据库。原理是先写一个存储过程,然后写一个定时器在job里面,数据库会自动监测,到了时间就会执行存储过程完成任务。
Oracle JOB 定时任务 定时执行存储过程
定时执行存储过程,创建job、删除job等等
-- job 创建 begin dbms_scheduler.create_job ( job_name => 'AGENT_LIQUIDATION_JOB', job_type => 'STORED_PROCEDURE', job_action => 'AGENT_LIQUIDATION.LIQUIDATION', --存储过程名 start_date...
Oracle_job包的用法,语法和实例
使用winform从SqlServer导数据到Oracle,使用定时器定时导入。从本地获取文件名保存到Oracle数据库。完整代码,使用vs2010开发,可以进行参考,初学作品。
Oracle 在10g 版本以前,计划任务用的是DBMS_JOB 包,10g 版本引入DBMS_SCHEDULER 来替代先前的DBMS_JOB,在功能方面,它比DBMS_JOB 提供了更强大的功能和更灵活的机制 管理,但DBMS_JOB 包的使用相对比较简单,也基本...
begin dbms_job.submit( jobno,–定时器ID,系统自动获得 'PRC_INSERT;',–what执行的过程名 sysdate,–next_date,定时器开始执行的时间,这样写表示立即执行 'sysdate + 15/1440'–interval,...
Oracle定时执行存储过程 Oracle定时执行存储过程
设计之初,就非常注重安全性,为企业系统保驾护航,让一切都变得如此简单。 - 提供了代码生成器,只需编写30%左右代码,其余的代码交给系统自动生成,可快速完成开发任务 - 后台系统支持MySQL、Oracle、SQL Server、...