Chinaunix首页 | 论坛 | 博客
  • 博客访问: 830715
  • 博文数量: 105
  • 博客积分: 636
  • 博客等级: 中士
  • 技术积分: 1704
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-11 10:57
文章分类

全部博文(105)

文章存档

2017年(4)

2016年(9)

2015年(18)

2014年(16)

2013年(34)

2012年(24)

分类: Oracle

2013-03-27 11:37:01

今天创建了一个procedure 想让它每周一 的晚上1点定时执行。用到了orale的jobs
有两种写法
1.
 declare
      job1 number;
begin
       dbms_job.submit(:job1,'analyze_tb;',sysdate,'next_day(trunc(sysdate),''星期一'')+1/24');
      
end;
/
注:窗口模式下 变量job1 不用加前面的冒号:
2.
         DECLARE
            X NUMBER;
         BEGIN
            SYS.DBMS_JOB.SUBMIT
            ( job => X
               ,what => 'analyze_tb;'
               ,next_date => to_date('28-03-2013 01:00:00','dd-mm-yyyy hh24:mi:ss')
               ,interval => 'next_day(trunc(sysdate),''星期一'')+1/24'
               ,no_parse => FALSE
            );
                END;

主要是interval  我写了好多次都报错 原因是 星期一那我之前一直用单引号 ,总是报错. 这里注意是双引号就可以了

另外把各个参数建单说一下 job 系统会返回一个job号 以后根据这个job号操作job

在 user_jobs.job 就是了,一个数字编号

what 是要执行的存储

next_date 是首次执行时间


interval  是时间间隔


要删除job

 begin
                   sys.dbms_job.remove(job);
                  end;
这里的job 就是之前返回的数字编号



阅读(1441) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~