儲存過程定時執行
有兩種方法:
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 ...