Oracle存储过程定时执行主要有两种方法: 1、编写shell脚本,使用crontab在后台定时执行
4 G( _& L1 q, ]& z+ h" R: ~ a) shell脚本
. r0 C* k1 z9 H% T; F% n bash-2.03$ more pr_merge_query_report.sh
+ \. @" e# ?5 X; ?* M6 c" g0 \ #!/bin/sh
# D9 R2 {- n/ s) s5 q, C ORACLE_BASE=/oracle/home (指定环境变量)7 \3 G/ r0 d# i
ORACLE_HOME=/oracle/home/data
5 m. i0 @6 z' j/ Y! V& k7 d2 z NLS_LANG=american_america.ZHS16GBK$ C& B7 ?! S; [1 q F3 @$ @9 g
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:: d* ?4 V/ a' X' J7 ?& K7 o9 t
/sbin:/usr/local/bin:/opt/EMCpower/bin:$ d- v2 f6 B2 z* y3 O
/etc:/oracle/home/data/bin:/usr/ccs/bin:/usr/openwin/bin:! m9 T2 H f1 P4 m9 Y K
/usr/local/bin:/bin:/sbin:/usr/bin:
, l, E. u; i9 t% K' z! ~ /usr/local/bin:/usr/local/sbin:/export/home/bss/.db_conf7 r7 _) y3 _, f
export ORACLE_BASE ORACLE_HOME NLS_LANG PATH$ K0 r) K' B+ y3 W
, ~% u0 p5 c' H) g sqlplus -s username/password </pp DECLARE/pp v_date VARCHAR2(10);V_CODE VARCHAR2(255); V_MSG VARCHAR2(255); V_ERR VARCHAR2(255);/pp BEGIN/pp v_date:=to_char(sysdate,'yyyymmdd');/pp if substr(v_date,7,2)>=01 AND substr(v_date,7,2) |