declare
jobno binary_integer;
rm_days number;
rm_hour number;  --传入的hour
my_hour number;    --取出当前时间的hour
my_interval_day number;
my_interval varchar2(20);      

my_sql  varchar2(200);
my_next_date varchar2(200);
my_yymmdd varchar2(200);
my_own_sql varchar2(2000);

begin
  rm_days:=30;
  rm_hour:=11;
  my_interval_day:=1;
  my_sql:='''delete from log_info_bak where currenttime <sysdate-'||rm_days||';''';
  dbms_output.put_line('my_sql is: '||my_sql);
 
  --判断两个hour
  select to_number(to_char(sysdate,'hh24')) into my_hour from dual;
--  dbms_output.put_line(my_hour);
 
 
 
 
       --16          18
  if rm_hour < my_hour then
  rm_hour:=rm_hour;
  select to_char(sysdate+1,'yyyy-mm-dd') into my_yymmdd from dual;
 
   my_next_date:='to_date('''||my_yymmdd ||' '||rm_hour||':00:00'' ,''yyyy-mm-dd hh24:mi:ss'')';  
    --20        18
  elsif  rm_hour>my_hour then
      select to_char(sysdate,'yyyy-mm-dd') into my_yymmdd from dual;
         my_next_date:='to_date('''||my_yymmdd ||' '||rm_hour||':00:00'' ,''yyyy-mm-dd hh24:mi:ss'')';  
   
--  dbms_output.put_line(rm_hour);
  end if;

 
dbms_output.put_line('my_next_date is:'||my_next_date);

 my_interval:='''sysdate+'||to_char(my_interval_day)||'''';     
--my_interval:='sysdate+1';

dbms_output.put_line('my_interval is: '||my_interval);

my_own_sql:=' declare jobno binary_integer; begin dbms_job.submit(job => jobno,what => '||my_sql||',next_date => '||my_next_date||',interval =>'||my_interval||'); commit; end;';
dbms_output.put_line(my_own_sql);

execute immediate my_own_sql;
 /* dbms_job.submit(job => jobno,
                      what => my_sql,
                      next_date => my_next_date,
                      interval => my_interval);*/
  commit;
end;

--测试部分
/*
系统 time 11:00:00   任务时间 9点   结果 执行时间推迟到 to_date('2016-12-21 9:00:00' ,'yyyy-mm-dd hh24:mi:ss')
系统 time 9:00:00    任务时间 11点   结果 执行时间推迟到 to_date('2016-12-20 11:00:00' ,'yyyy-mm-dd hh24:mi:ss')
*/

随机推荐

  1. 【转】Kinect使用

    文章转自http://blog.csdn.net/yangtrees/article/details/16106271 Kinect中深度值最大为4096mm (0x0fff) 微软建议在开发中使用1 ...

  2. JZ2440开发笔记(3)——配置TFTP

    第一步: 1.关闭ubuntu的防火墙 ufw disable2.卸载了iptables         apt-get remove iptables 1.用iptables -F这个命令来关闭防火 ...

  3. POJ1159 - Palindrome(区间DP)

    题目大意 给定一个字符串S,问最少插入多少个字符可以使字符串S变为回文串 题解 用dp[i][j]表示把字符串s[i-j]变为回文串需要插入的最小字符数 如果s[i]==s[j]那么dp[i][j]= ...

  4. poj1273--Drainage Ditches(最大流Edmond-Karp算法 邻接表实现)

    最大流模板题 大部分Edmond-Karp算法代码都是邻接矩阵实现,试着改成了邻接表. #include <iostream> #include <cstdio> #inclu ...

  5. 初次接触Android ActionBar比较烦人的问题[转]

    本文转自:http://blog.csdn.net/u010933209/article/details/40112079 问题一:icon不能正常显示 一直都对actionbar又爱又恨,特别是刚接 ...

  6. 第三周作业、实时操作系统µC/OS介绍及其它内容

    作业要求 见<实时控制软件设计>第三周作业 1 阅读笔记--µC/OS 1.1 基本介绍 µC/OS是由Micrium公司研发的实时操作系统,以µC/OS-II或µC/OS-III为内核, ...

  7. java初学的几个问题

    1. 请问配置JDK时环境变量path和JAVA_HOME的作用是什么? 作用:告诉操作系统编译器运行的路径和生成的类路径.这样java源程序才可以进行编译和运行. 以下4-7题请在JDK环境下编译和 ...

  8. cocos2d-x触摸事件优先级的探究与实践

    如何让自定义Layer触发触摸事件? bool LayerXXX::init() { this->setTouchEnabled(true); CCTouchDispatcher* td = C ...

  9. [Javascript] bukld 'SQL' like object tree

    Let's try creating a deeper tree structure. This time we have 4 separate arrays each containing list ...

  10. MP3的频率、比特率、码率与音质的关系

    想知道MP3的频率.比特率.码率与音质的关系,是不是频率越高,码率越高,音质就越好.好像MP3大多数的频率都是44100HZ的.码率有128,192等等. 这里所说的频率是採样率,一般都是44100K ...