原创  存储过程定时执行 收藏

有两种方法:

1、编写shell脚本,使用crontab在后台定时执行

 

a)      shell脚本pr_merge_query_report.sh

  1. #!/bin/sh
  2. ORACLE_BASE=/oracle/home  (指定环境变量)
  3. ORACLE_HOME=/oracle/home/data
  4. NLS_LANG=american_america.ZHS16GBK
  5. 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
  6. export ORACLE_BASE ORACLE_HOME NLS_LANG PATH 
  7. sqlplus -s username/password <<!
  8. DECLARE
  9.   v_date VARCHAR2(10);V_CODE VARCHAR2(255); V_MSG VARCHAR2(255); V_ERR VARCHAR2(255);
  10.   BEGIN
  11.         v_date:=to_char(sysdate,'yyyymmdd');
  12.           if substr(v_date,7,2)>=01 AND substr(v_date,7,2)<=04
  13.                 THEN
  14.                  ACCOUNT.PR_MERGE_QUERY_REPORT(to_char(SYSDATE,'yyyymm')-1,to_char(SYSDATE,'yyyymmdd'), V_CODE, V_MSG, V_ERR);
  15.                         ELSE
  16.                          ACCOUNT.PR_MERGE_QUERY_REPORT(to_char(SYSDATE,'yyyymm'),to_char(SYSDATE,'yyyymmdd'),V_CODE, V_MSG, V_ERR); 
  17.                            END IF;
  18.                            END;
  19. /
  20. exit;
  21. !

 

 

b)      crontab

使用crontab –e编辑     

时间格式:分 小时 星期

 

 

2。添加job

使用pl/sql developer 可以很容易添加定时执行的存储过程

 

一个例子:

 

  1. begin
  2.   sys.dbms_job.submit(job => :job,
  3.                       what => 'RATING.JOB_PRESS;',
  4.                       next_date => to_date('01-01-4000''dd-mm-yyyy'),
  5.                       interval => 'TRUNC(SYSDATE+1)');
  6.   sys.dbms_job.broken(job => :job,
  7.                       broken => true,
  8.                       next_date => to_date('01-01-4000''dd-mm-yyyy'));
  9.   commit;
  10. end;

发表于 @ 2008年11月07日 08:46:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:Spring In Action (1) -- HelloWorld | 新一篇:Web应用中并发控制的实现

  • 发表评论
  • 评论内容:
  •  
Copyright © wanchengpeng
Powered by CSDN Blog