使用PL/SQL Developer 创建定时JOB实例

1. 使用Submit()过程创建 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。用来唯一标识一个JOB。 

what --将被执行的PL/SQL代码块。 

next_date --何时将运行这个JOB。 

interval --这个JOB何时将被重执行。 

no_parse --指示此JOB在提交时或执行时是否应进行语法分析

--TRUE 指示此PL/SQL代码在它第一次执行时应进行语法分析, 

--FALSE指示本PL/SQL代码应立即进行语法分析。 

--创建job

DECLARE

  JOB NUMBER;

BEGIN

  SYS.DBMS_JOB.SUBMIT(JOB,

                      'DECLARE

v_date DATE:= TRUNC(sysdate,''mi'')-numtodsinterval(55,''hour'');

BEGIN

P_BI_JYJQ(v_date);

END;',

                      TO_DATE('28-11-2014 10:50:00',

                              'dd-mm-yyyy hh24:mi:ss'),

                      'sysdate+5/1440'); --每天1440分钟,每5分钟运行 P_BI_JYJQ 过程一次

END;

COMMIT;

在PL/SQL Developer 的DBMS_Jobs 里查看刚建的 JOB:



代码:

begin

  sys.dbms_job.change(job => 85,

                      what => 'DECLARE

v_date DATE:= TRUNC(sysdate,''mi'')-numtodsinterval(55,''hour'');

BEGIN

P_BI_JYJQ(v_date);

END;',

                      next_date => to_date('28-11-2014 13:05:00', 'dd-mm-yyyy hh24:mi:ss'),

                      interval => 'TRUNC(sysdate,''mi'') +5/ (24*60)');

  commit;

end;

/


--查看创建的job 查看相关job信息

--1、相关视图

dba_jobs

all_jobs

user_jobs

dba_jobs_running 包含正在运行job相关信息。

如:

select * from all_jobs

--运行JOB

说明:Run()过程用来立即执行一个指定的JOB。这个过程只接收一个参数:

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

begin

dbms_job.run(87);

end;

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

--删除JOB

begin

 dbms_job.remove(87);

end; 



1、 每分钟执行

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

2、 每天定时执行

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

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

3、 每周定时执行

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

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

4、 每月定时执行

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

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

5、 每季度定时执行

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

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

6、 每半年定时执行

例如:每年71日和11日凌晨2

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

7、 每年定时执行

例如:每年11日凌晨2点执行

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野老杂谈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值