使用shell调用sqlplus访问oracle直接执行没问题。但是使用crontab调用时由于环境变量不生效,会不认为sqlplus为有效命令。
注:调用时使用的oracle用户
解决方法一:
在shell调用入口处增加如下环境变量:
解决方法二:
直接添加profile到shell程序入口处。即增加
方法三:
在crontab指名运行的oracle用户名。
注:调用时使用的oracle用户
解决方法一:
在shell调用入口处增加如下环境变量:
ORACLE_BASE=/oracle;export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/app/product/9.2.0;export ORACLE_HOME
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data;export ORA_NLS33
PATH=/usr/bin:sbin:/bin:/usr/bin:/usr/sbin:/opt/bin:/usr/local/bin:$ORACLE_HOME/bin:/usr/contrib/bin:$PATH
export PATH
解决方法二:
直接添加profile到shell程序入口处。即增加
. /oracle/.profile
方法三:
在crontab指名运行的oracle用户名。