首页 文章

无法运行shell脚本从Java启动SQL * Plus

提问于
浏览
0

我需要运行一个通过java执行的shell脚本 . 但是当我从java运行时,它无法识别sqlplus命令并将sqlplus的错误抛出为 no such file or directory ..

我的shell脚本代码如下

function CHECK_CONNECTION {   
    PATH=/data01/u03/TestABC/apps/tech_st/10.1.2/bin:${PATH} ---> Path for  Sqlplus
    WRITE_MESSAGE "Checking database connection details"
    UNAME_PASSWD=${1}

    count=0
        while [ $count -lt 3 ];do
        sqlplus -s ${UNAME_PASSWD}@${DBSID} <<-SQL >> $LOG_FILENAME
            WHENEVER OSERROR EXIT 9;
            WHENEVER SQLERROR EXIT SQL.SQLCODE;
            prompt Connected to the database; 
        quit; SQL

     conn_code=$?

     if [ $conn_code -ne 0 ]; then
        count=`expr $count + 1`
        WRITE_MESSAGE " Trying to connect $count time..\n"
     else
        WRITE_MESSAGE "Database connectivity is working fine.................\n"
        break
     fi
done

if [ $count -eq 3 ]; then

  WRITE_MESSAGE "Database connectivity is not working fine!!!!!check the username/password\n"
  exit 1

fi

我通过java UI提供数据库详细信息 . 通过java在UNIX shell中正确地实现了详细信息 .

但是当我从shell执行时,同样的命令工作正常,并连接到数据库 . 他们可以通过任何方式连接到数据库,而无需使用像sqlplus这样的任何客户端,或者是他们的任何其他方式来实现这一点 .

任何帮助将受到高度赞赏 .

1 回答

  • 1

    最后它解决了 .

    实际上,当我通过java运行我的shell脚本时,它无法识别sqlplus命令 . sqlplus命令的定义存在于UNIX实例的环境文件中,但它无法自行执行 . 所以我在我的脚本中通过shell脚本命令从外部执行环境文件:

    cd~ . 在〜/ .bash_profile

    现在执行后它工作正常 . 谢谢你的建议朋友

相关问题