如何定時執行Oracle儲存過程

2021-06-02 08:02:03 字數 1794 閱讀 4515

oracle儲存過程定時執行主要有兩種方法

1、編寫shell指令碼,使用crontab在後台定時執行

a)      shell指令碼

bash-2.03$ more pr_merge_query_report.sh

#!/bin/sh

oracle_base=/oracle/home  (指定環境變數)

oracle_home=/oracle/home/data

nls_lang=american_america.zhs16gbk

path=/usr/local/bin:/usr/bin:/bin:/usr/sbin:

/sbin:/usr/local/bin:/opt/emcpower/bin:

/etc:/oracle/home/data/bin:/usr/ccs/bin:/usr/openwin/bin:

/usr/local/bin:/bin:/sbin:/usr/bin:

/usr/local/bin:/usr/local/sbin:/export/home/bss/.db_conf

export oracle_base oracle_home nls_lang path

sqlplus -s username/password <

declare

v_date varchar2(10);v_code varchar2(255); v_msg varchar2(255); v_err varchar2(255);

begin

v_date:=to_char(sysdate,'yyyymmdd');

if substr(v_date,7,2)>=01 and substr(v_date,7,2)<=04

then

account.pr_merge_query_report(to_char(sysdate,'yyyymm')-1,to_char(sysdate,'yyyymmdd'), v_code, v_msg, v_err);

else

account.pr_merge_query_report(to_char(sysdate,'yyyymm'),to_char(sysdate,'yyyymmdd'),v_code, v_msg, v_err);

end if;

end; /

exit; !

b)      crontab

使用crontab –e編輯

30 22 * * * /export/home/bss/bss/pr_merge_query_report.sh >> /export/home/bss/log/mergequery.log 2>&1

時間格式:分 小時 日 月 星期

2. 新增job

使用pl/sql developer 可以很容易新增定時執行的儲存過程

乙個例子:

begin

sys.dbms_job.submit(job => :job,

what => 'rating.job_press;',

next_date => to_date('01-01-4000', 'dd-mm-yyyy'),

interval => 'trunc(sysdate+1)');

sys.dbms_job.broken(job => :job,

broken => true,

next_date => to_date('01-01-4000', 'dd-mm-yyyy'));

commit;

end; /

ORACLE 定時執行儲存過程

推薦用dbms scheduler方式更好 2012 11 19注 查詢 select job,broken,what,interval,t.from user jobs t job job的唯一標識,自動生成的 broken 是否處於執行狀態,n 執行 y 停止 what 儲存過程名稱 next ...

Oracle 定時執行儲存過程

1.首先建立乙個簡單的儲存過程 create or replace procedure sp wftestone msg varchar as begin delete from wf testone commit end 2.建立作業需要在命令視窗裡面執行 sql variable v jobnu...

oracle定時執行儲存過程

一直用 sql server 建作業什麼得定時執行還是很ok得 碰到oracle就懵l 真實為難我胖虎了 create orreplace procedure mh policeman gps info proc asbegin insert into mh xh hq policeman info...