当前位置:数据库 > Oracle >>

oracle之旅(一)计划任务设置

oracle之旅(一)计划任务设置
 
 
用pl/sql 登录oracle 数据库,在procedures 建立计划任务操纵登录表将每天的数据插入到临时表中
计划任务的sql如下:
create or replace procedure insertloginuser is //计划任务的名称
       v_CreateLogin varchar2(2000);
       v_YearMonth varchar2(10);
begin
  v_YearMonth:=to_char(sysdate-1,'yyyyMM');
---临时表t_loginuser_temp 中括号是需要插入的字节段,然后从t_chmo_login_record_'||v_YearMonth||' 中查询出需要插入的语句,(登录表:t_chmo_login_record_月份   如t_chmo_login_record_201205  5月份的访问表),下面采用了几重表套表。
   v_CreateLogin:= 'insert into t_loginuser_temp (logincounts,L_PLATFORM,province_code,l_date) '||
 'select logincounts,lr_name,lr_provincecode,sysdate-1 from ('||
 ' select count(lr_loginaccount) as logincounts,lr_name,lr_provincecode from (select l.lr_loginaccount,l.lr_provincecode,l.lr_name from t_chmo_login_record_'||v_YearMonth||' l where '||
 '  l.create_time >=to_date(to_char(sysdate-1,''YYYY-MM-DD'')||'' 00:00:00'',''YYYY-MM-DD HH24:MI:SS'') '||
 ' and l.create_time <=to_date(to_char(sysdate-1,''YYYY-MM-DD'')||'' 23:59:59'',''YYYY-MM-DD HH24:MI:SS'')'||
 ' and l.lr_status=1)  group by lr_name,lr_provincecode )';
 
 
   EXECUTE IMMEDIATE v_CreateLogin;
   COMMIT;
 
end insertloginuser;
保存后再
 
 
next date 表示下一次执行插入计划的时间
 
代码设置如下
begin
  sys.dbms_job.submit(job => :job,
                      what => 'insertonlyuser;', --名称
                      next_date => to_date('05-05-2013 01:51:22', 'dd-mm-yyyy hh24:mi:ss'),--时间
                      interval => 'sysdate+1440/1440'); --执行时间的距离,这个地方是一天
  commit;
end;
/
 
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,