我的a.sh文件如下:
#!/bin/sh
export ORACLE_HOME=/oracle/products/10.2/db
export ORACLE_SID=stdm
export PATH=$PATH:$ORACLE_HOME/bin
/oracle/products/10.2/db/bin/sqlplus biee/123@stdm <<EOF
@/home/a.sql
EOF
我在.bash_profile里设置了export ORACLE_HOME=/oracle/products/10.2/db
export ORACLE_SID=stdm
export PATH=$PATH:$ORACLE_HOME/bin,
env查看环境变量也有ORACLE_HOME=/oracle/products/10.2/db
然后在crontab里定时,发现日志文件中报错:
Error 6 initializing SQL*Plus
Message file sql<lang.1>msb not found
SP2-0750:You may need to set ORACLE_HOME to your Oracle software directory
我的用户单独运行sqlplus也是可以的,我也设置了ORACLE_HOME,这个错误是什么原因呢?

解决方案 »

  1.   

    我之前安装了一次oracle也会报这个问题,每次都需要手动export ORACLE_HOME一下...
    郁闷。。
      

  2.   

    我就是手动export ORACLE_HOME=,但是还是报那个错误啊
      

  3.   

    http://www.itpub.net/viewthread.php?tid=244597&page=1#pid1635568应该是.profile文件的问题。
    1)先尝试手工设置一下ORALE_BASE和ORACLE_HOME,看看好不好用:
    比如:$ORACLE_BASE=/oracle;export ORACLE_BASE
                $ORACLE_HOME=$ORACLE_BASE/product/9.0.1;export ORACLE_HOME;
                $sqlplus
    如果好用,说明是.profile的问题,重新修改.profile。如果不好用,在考虑下一步;
    2)然后再检查一下$ORACLE_HOME/sqlplus/mesg,看看你的NLS_LANG里面语言对应的.msb文件是否存在。
    一般是第一种问题。
      

  4.   

    可是我不用手工设置ORACLE_HOME,ORACLE_BASE,直接sqlplus也可以运行啊,就让输入用户名和密码了,为什么定时就执行不了啊