crontab调用shell访问oracle问题

 

使用shell调用sqlplus访问oracle直接执行没问题。但是使用crontab调用时由于环境变量不生效,会不认为sqlplus为有效命令。



注:调用时使用的oracle用户
解决方法一:
在shell调用入口处增加如下环境变量:

Java代码
  1. ORACLE_BASE=/oracle;export ORACLE_BASE  
  2. ORACLE_HOME=$ORACLE_BASE/app/product/9.2 . 0 ;export ORACLE_HOME  
  3. NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG  
  4. ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data;export ORA_NLS33  
  5. PATH=/usr/bin:sbin:/bin:/usr/bin:/usr/sbin:/opt/bin:/usr/local/bin:$ORACLE_HOME/bin:/usr/contrib/bin:$PATH   
  6. export PATH 
看起来,下面这四行就足够了。(或者决定于sqlplus 使用的复杂程度?)
ORACLE_BASE=/home/oracle; export ORACLE_BASE
ORACLE_HOME="/home/oracle/software/product/client/10.2"; export ORACLE_HOME
PATH=$ORACLE_HOME/bin:/usr/local/ant/bin:$JAVA_HOME/bin:$PATH;
export PATH
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程序入口处。即增加Java代码

  1. . /oracle/.profile  
. /oracle/.profile


方法三:
在crontab指名运行的oracle用户名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值