oralce存儲過程和定時器使用方法

先創建一個存儲過程- sql窗口

create or replace procedure p_dzda
as
   begin
        insert into dzda_sbqk
select s.sbxh,
       s.djxh,
       s.nsrsbh,
       s.zsxm_dm,
       s.sbzl_dm,
       s.sbzt_dm,
       s.skssqq,
       s.skssqz,
       to_char(s.pzxh),
       s.lrsj,
       s.xgsj,
       sysdate,
       sysdate,
       '00',
       '0',
       '',
       s.gds_bz,
       s.sbrq,
       s.swjg_dm
  from sb_sbqk s
 where s.sbzt_dm = '0000'
   and s.pzxh is not null
   and s.sbxh not in (select s.sbxh from dzda_sbqk s);
   end;
格式:create or replace procedure p_dzda //創建存儲過程名稱
	as
   begin
    --裏面是需要運行的sql腳本
   end;

很顯然,每次執行這個存儲過程就是新增數據

一般我們用oralce自帶的定時器去定時執行

定時器:命令窗口

var job number  
begin
  sys.dbms_job.submit(job => :job,
                      what => 'p_dzda;',
                      next_date => to_date('23-04-2020 15:33:00', 'dd-mm-yyyy hh24:mi:ss'),
                      interval => 'TRUNC(sysdate,''mi'')+5/(24*60)');
  commit;
end;
/

var job number   //定義一個job名字
begin
  sys.dbms_job.submit(job => :job,  //定義的job名字
                      what => 'p_dzda;',  //存儲過程名字
                      next_date => to_date('23-04-2020 15:33:00', 'dd-mm-yyyy hh24:mi:ss'), //下一次執行時間
                      interval => 'TRUNC(sysdate,''mi'')+5/(24*60)'); //每次執行間隔時間 這個爲5分鐘
  commit;
end;
/

備註:存儲過程可以查詢 user_source
定時器可以查詢 user_jobs

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章