oracle job 定时任务 语法

15411年前 (2014-10-17)oracle数据库3892

  

创建job,
使用Submit()过程,工作被正常地计划好。
这个过程有五个参数:job、what、next_date、interval与no_parse。

PROCEDURE Submit ( job       OUT binary_ineger,
What      IN  varchar2,
next_date IN  date,
interval  IN  varchar2,
no_parse  IN  booean:=FALSE)

job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作。
what参数是将被执行的PL/SQL代码块。
next_date参数指识何时将运行这个工作。
interval参数何时这个工作将被重执行。
no_parse参数指示此工作在提交时或执行时是否应进行语法分析——TRUE
指示此PL/SQL代码在它第一次执行时应进行语法分析,
而FALSE指示本PL/SQL代码应立即进行语法分析。

实例:
在command window窗口中执行下面脚本

variable job1 number ; ---job名称
begin
sys.dbms_job.submit(job => :job1,
what => 'csh_sb_hsqjzbA_fjm;',---存储过程名称
next_date => to_date( '17-10-2014 12:00:00' , 'dd-mm-yyyy hh24:mi:ss' ), ---下次执行时间
interval =>  'TRUNC(SYSDATE + 1)' ); --每天午夜12点
commit ;
end ;
/

 

--------------------------------------------------------------

创建JOB
variable jobno number;
begin
dbms_job.submit(:jobno, 'P_CRED_PLAN;',SYSDATE,'SYSDATE+1/2880',TRUE);
commit;

 

运行JOB
SQL> begin
dbms_job.run(:job1);
end;
/

 

删除JOB
SQL> begin
dbms_job.remove(:job1);
end;
/

描述 INTERVAL参数值
每天午夜12点 'TRUNC(SYSDATE + 1)'
每天早上8点30分 'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'
每星期二中午12点 'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24'
每个月第一天的午夜12点 'TRUNC(LAST_DAY(SYSDATE ) + 1)'
每个季度最后一天的晚上11点 'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24'
每星期六和日早上6点10分 'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)'

1:每分钟执行

Interval => TRUNC(sysdate,'mi') + 1/ (24*60)

Interval => sysdate+1/1440

2:每天定时执行

例如:每天的凌晨1点执行

Interval => TRUNC(sysdate) + 1 +1/ (24)

3:每周定时执行

例如:每周一凌晨1点执行

Interval => TRUNC(next_day(sysdate,'星期一'))+1/24

4:每月定时执行

例如:每月1日凌晨1点执行

Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24

5:每季度定时执行

例如每季度的第一天凌晨1点执行

Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24

6:每半年定时执行

例如:每年7月1日和1月1日凌晨1点

Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24

7:每年定时执行

例如:每年1月1日凌晨1点执行

Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24

本文原创,转载必追究版权。

分享给朋友:

相关文章

jfinal 使用C3p0同时配置mySql与Oracle数据库

    /**     * 配置插件     */    public void...

java 实现自增编号+Oracle序列

原理:a,a++,fillStr(a, 9, false, "0");新建序列:create sequence seq_lineminvalue 1maxvalue 9999999...

PLSQL 11 注册码

注册码:Product Code:4t46t6vydkvsxekkvf3fjnpzy5wbuhphqzserial Number:601769password:xs374ca...

oracel如何找回被删除的数据

---此sql是查询这个时间段前的数据select * from tableName as of timestamp to_timestamp('2011-05-21 11:40:00'...

oracle 函数function语法及简单实例

函数调用限制1、SQL语句中只能调用存储函数(服务器端),而不能调用客户端的函数2、SQL只能调用带有输入参数,不能带有输出,输入输出函数3、SQL不能使用PL/SQL的特有数据类型(boolean,...

oracle创建表空间实例sql

表空间:nsxydjdba用户名:nsxydjdba      密  码:nsxydj123--创建表空间CREATE TABLE...

评论列表

点我收录您
10年前 (2015-10-15)

定时备份 要做的

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。