如何创建Oracle的jobs 以及Procedure
2007-09-05 15:34
253 查看
例:在Toad界面下。选择databases->Procedure Editor
//也可以直接在sql界面下执行//也可以直接在isql*plus界面下执行
create procedure bertelsmann as
begin
INSERT INTO RECORD SELECT CUSSENT.* FROM CUSSENT WHERE ADDDATE<=TO_DATE(to_char(add_months(sysdate,-3),'yyyy-MM-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss');
DELETE FROM CUSSENT WHERE ADDDATE<=TO_DATE (to_char(add_months(sysdate,-3),'yyyy-MM-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss');
COMMIT;
end;
-- 以上创建 一个名为bertelsmann的过程。作用时向表record中插入cussent表中日期小于当前日期三个月的记录
然后删除cussent表中的数据,删除掉刚才插入record(备份表中的数据)
这样一个过程创建 好了。
在Procedures下面能看到我们所创建的过程。。
然后我要让他每三个月执行一次该备份的功能
declare v_job number:=1;
begin
dbms_job.submit(v_job,'bertelsmann;',sysdate,'sysdate+1/1440');
commit;
end;
--解释一下上面的程序
程序主体有四个参数,分别意为:v_job是计划任务号,'bertelsmann;'是计划任务名,如果是多个计划任务,就都用分号隔开,
第三个sysdate意为立即执行此任务,第四个参数是间隔时间的设置,此处为每分钟执行一次,1/1440=1/24/60。
以下转载:
查看任务:select * from user_jobs;select * from all_jobs;
查看正在运行的任务(不推荐使用,速度慢):select * from dba_jobs_running;
另外值得一提的是,在安装oracle配置的时候,有这么一个参数:
job_queue_processes=4 (默认4)
这个参数是定义当前最多可同时运行几个job,它的最大值能设置为36。
除了submit参数外,其余的几个参数有:
dbms_job.run(v_job); //运行job
dbms_job.broken(v_job,true,next_date); //停止一个job,里面参数true也可是false,next_date(某一时刻停止)也可是sysdate(立刻停止)。
dbms_job.remove(v_job); //删除某个job
dbms_job.what(v_job,'sp_fact_charge_code;'); //修改某个job名
dbms_job.next_date(v_job,sysdate); 修改下一次运行时间
例题,设定每天2:10:10运行
trunc(sysdate)+2/24+10/24/60+10/24/60/60 //运行时间
trunc(sysdate)+1+2/24+10/24/60+10/24/60/60 //间隔运行时间
例题,设定每月2号的2:10:10运行
trunc(sysdate,'mm')+1+2/24+10/24/60+10/24/60/60 //运行时间
trunc(add_mouths(sysdate,1),'mm')+1+2/24+10/24/60+10/24/60/60 //间隔运行时间
例题,设定每个季度……
trunce(sysdate,'Q')+1+2/24+10/24/60+10/24/60/60 //运行时间
trunce(add_mouths(sysdate,3),'Q'))+1+2/24+10/24/60+10/24/60/60 //间隔运行时间
另外年为'Y;
例题,设定每周一……
next_day(sysdate'星期一')
//也可以直接在sql界面下执行//也可以直接在isql*plus界面下执行
create procedure bertelsmann as
begin
INSERT INTO RECORD SELECT CUSSENT.* FROM CUSSENT WHERE ADDDATE<=TO_DATE(to_char(add_months(sysdate,-3),'yyyy-MM-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss');
DELETE FROM CUSSENT WHERE ADDDATE<=TO_DATE (to_char(add_months(sysdate,-3),'yyyy-MM-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss');
COMMIT;
end;
-- 以上创建 一个名为bertelsmann的过程。作用时向表record中插入cussent表中日期小于当前日期三个月的记录
然后删除cussent表中的数据,删除掉刚才插入record(备份表中的数据)
这样一个过程创建 好了。
在Procedures下面能看到我们所创建的过程。。
然后我要让他每三个月执行一次该备份的功能
declare v_job number:=1;
begin
dbms_job.submit(v_job,'bertelsmann;',sysdate,'sysdate+1/1440');
commit;
end;
--解释一下上面的程序
程序主体有四个参数,分别意为:v_job是计划任务号,'bertelsmann;'是计划任务名,如果是多个计划任务,就都用分号隔开,
第三个sysdate意为立即执行此任务,第四个参数是间隔时间的设置,此处为每分钟执行一次,1/1440=1/24/60。
以下转载:
查看任务:select * from user_jobs;select * from all_jobs;
查看正在运行的任务(不推荐使用,速度慢):select * from dba_jobs_running;
另外值得一提的是,在安装oracle配置的时候,有这么一个参数:
job_queue_processes=4 (默认4)
这个参数是定义当前最多可同时运行几个job,它的最大值能设置为36。
除了submit参数外,其余的几个参数有:
dbms_job.run(v_job); //运行job
dbms_job.broken(v_job,true,next_date); //停止一个job,里面参数true也可是false,next_date(某一时刻停止)也可是sysdate(立刻停止)。
dbms_job.remove(v_job); //删除某个job
dbms_job.what(v_job,'sp_fact_charge_code;'); //修改某个job名
dbms_job.next_date(v_job,sysdate); 修改下一次运行时间
例题,设定每天2:10:10运行
trunc(sysdate)+2/24+10/24/60+10/24/60/60 //运行时间
trunc(sysdate)+1+2/24+10/24/60+10/24/60/60 //间隔运行时间
例题,设定每月2号的2:10:10运行
trunc(sysdate,'mm')+1+2/24+10/24/60+10/24/60/60 //运行时间
trunc(add_mouths(sysdate,1),'mm')+1+2/24+10/24/60+10/24/60/60 //间隔运行时间
例题,设定每个季度……
trunce(sysdate,'Q')+1+2/24+10/24/60+10/24/60/60 //运行时间
trunce(add_mouths(sysdate,3),'Q'))+1+2/24+10/24/60+10/24/60/60 //间隔运行时间
另外年为'Y;
例题,设定每周一……
next_day(sysdate'星期一')
相关文章推荐
- Oracle里数据库与实例的区别以及windows下如何创建数据库及对应的实例
- 关于Oracle创建分区表以及如何在mybatis中插入分区表信息
- Oracle在sys模式下创建触发器报错的原因以及如何更改
- 如何创建表以及设计表需要注意什么,oracle五种限制
- [VB.NET]在VB.NET 2005中,如何创建Oracle的存储过程,以及如何来使用存储过程语句?
- 如何创建Oracle的jobs
- 16_Oracle_Admin_什么是表空间以及如何创建表空间
- oracle创建表空间,创建用户以及授权
- oracle 备份、还原、导出导入,创建表空间以及用户的命令和语句
- VS2010 创建WCF以及SL的客户端如何调用WCF服务教程(一): 创建WCF
- 在oracle下如何创建database link
- linux中 oracle 创建用户和表空间以及授权
- VC6.0如何创建以及调用动态链接库具体实例
- 如何创建oracle dblink
- C#程序:如何创建xml文件以及xml文件的增、删、改、查
- 深入分析虚拟机创建对象的两种方式以及如何在并发情况下实现线程安全
- Android: 如何创建AVD以及选择合适target类型
- 【Vegas原创】Oracle Dblink(链接服务器)创建(Oracle对Oracle的链接)以及SQL对Oracle的互访方法
- Oracle创建一个type、package、body、function、procedure及常用系统函数。
- Oracle基础 -- SQLPlus如何查看procedure的内容