Oracle 存储过程定时进行调度的方法
1、编写 shell 脚本,使用 Unix 下 crontab 在后台定时执行
第一步: shell 脚本(如 test.sh)
#!/bin/sh
#定义 oracle 环境变量
ORACLE_BASE=/u01/oracle
ORACLE_HOME=/u01/oracle/app/oracle/product/9.2.0.1 //指 oracle 在服务器上安
装目录
NLS_LANG=american_america.ZHS16GBK
//NLS_LANG=<Language>_<Territory>.<Clients Characterset>
//LANGUAGE 指定: -Oracle 消息使用的语言 -日
期中月份和日显示
//TERRITORY 指定: -货币和数字格式 -地区和计
算星期及日期的习惯
//CHARACTERSET 指定: -控制客户端应用程序使
用的字符集
//Unix 使用: env|grep NLS_LANG (来查询
NLS_LANG)
PATH=/usr/ccs/bin: //PATH 的值是一系列目录(用":"分隔)
/u01/oracle/app/oracle/product/9.2.0.1/bin: //Unix 使用: echo $PATH (来查询
PATH 路径下目录)
/usr/bin:/etc:/usr/sbin:
/usr/ucb:$HOME/plat/bin:/usr/bin/X11:/sbin:.
export ORACLE_BASE ORACLE_HOME NLS_LANG PATH
sqlplus -s username/password@数据库服务名 > test.log //调用数据库 sqlplus
exec test(调用参数); //调用存储过程
exit;
第二步: 利用 crontab 执行定时调度
Unix 下使用 crontab –e 编辑
30 13 * * * /home/test/test.sh //时间格式:分 小时 日 月 星期