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...