儲存過程定時執行

2021-04-22 11:54:02 字數 1927 閱讀 7296

儲存過程定時執行

有兩種方法:

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;

/

儲存過程定時執行

有兩種方法 1 編寫 shell 指令碼,使用 crontab 在後台定時執行 a shell 指令碼pr merge query report.sh bin sh oracle base oracle home 指定環境變數 oracle home oracle home data nls lan...

定時執行儲存過程

下面是我在網上抄的一段話.其實有傻瓜式的方法.開啟sql server管理器,如果版本高的話,可以看到有sql server 點開它自己琢磨下就會了.太簡單就不寫出來了.建立作業就行了.建立作業 exec msdb.sp add job job name 資料處理 建立作業步驟 declare sq...

定時執行sql儲存過程

定時執行sql儲存過程 2007 03 21 15 47 建立作業就行了.建立作業 exec msdb.sp add job job name 資料處理 建立作業步驟 declare sql varchar 800 dbname varchar 250 select sql exec p proc ...