UNIX 中调用定时器自动执行数据库存储过程
---- 1 、 ORACLE 数据库
---- 先编写并编译通过你想执行的存储过程 procedure1 。以 oracle 用户登录 UNIX ,用 vi 建立一个文件 exec_proc.sql 调用存储过程 :
exec procedure1
---- 再用 vi 建立一个文件 auto_proc.exe ,在文件开始先输入 oracle 用户的环境参数,再输入 sqlplus 命令调用 exec_proc.sql 文件 :
ORACLE_HOME = ......
ORACLE_SID = ......
ORA_NLS32 = .....
.......
sqlplus 用户名 / 口令 exec_proc.sql
---- 这些环境参数可以在 oracle 用户的 UNIX 中用 set 命令查看。再用 chmod 命令将该文件 auto_proc.exe 设为可执行文件:
chmod 777 auto_proc.exe
---- 接着我们用 UNIX 的 cron 进程调用 auto_proc.exe 文件,在 oracle 用户的 UNIX 下,输入命令:
crontab -e
---- 其编辑方式、命令与 vi 类似;如果想每天凌晨 1 点 1 分调用存储过程,你可以输入:
1 1 * * * auto_proc.exe
---- 该命令的格式为:
分 时 日 月 星期 要执行的命令
---- 分时日月星期可以用 * 代表每的意思。该文件存放在 /usr/var/spool/cron/crontabs/ 目录下。
---- 2 、 SYBASE 数据库
---- 其方法与 ORACLE 数据库大体一致,只是将文件 auto_proc.exe 中的:
sqlplus 用户名 / 口令 exec_proc.sql
改为:
isql 用户名 / 口令 < exec_proc.sql
将文件 exec_proc.sql 改为:
数据库名 . 用户名 .procedure1
---- 这样,一个 Digital UNIX 中的时钟程序就编写好了。 |