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

本文解决使用crontab调用SQLPLUS访问Oracle时因环境变量不生效导致的问题,提供了三种解决方法:在shell调用入口处设置环境变量、直接添加profile、指定运行的oracle用户名。
657

被折叠的 条评论
为什么被折叠?



