ORACLE 定时执行存储过程



2017-03-25 10:56 
甘雨路 
阅读(234
评论(0
编辑 
收藏 
举报

-- 创建
create table test_lf(
       test_id varchar(40) primary key,
       test_name varchar(50) not null,
       reate_time date
);

select t.*,t.rowid from test_lf t;

--select t.*,t.rowid from lf_201703282003 t
-- 授权
  grant create table to developer
 
-- 创建存储过程
create or replace procedure test_lf_pro
authid current_user
as
tablename varchar(1200);
begin
  -- 拼接数据库名
  select \'LF_\' || to_char(sysdate, \'yyyymmddhh24mm\') into tablename from dual;
  dbms_output.put_line(\'执行。。。\');
  -- 创建表
  execute immediate  \'create table \'|| tablename || \' as select * from test_lf where reate_time >(sysdate-1)\';
  
end;


-- 调用(手动)
call test_lf_pro();

-- 定时调用
 declare
  jobid number;
  begin
    -- 定时
    --sys.dbms_job.submit(qqid,\'LF;\',sysdate,\'trunc(sysdate+1)+(10*60+45)/(24*60)\',true);
    sys.dbms_job.submit(jobid,\'test_lf_pro;\',sysdate,\'trunc(sysdate+1)+11/(24*60)\',true);
    commit;
    -- 执行
    dbms_job.run(jobid); 
  end;

 

版权声明:本文为lantu1989原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lantu1989/p/6616459.html