我需要运行一个通过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 回答
最后它解决了 .
实际上,当我通过java运行我的shell脚本时,它无法识别sqlplus命令 . sqlplus命令的定义存在于UNIX实例的环境文件中,但它无法自行执行 . 所以我在我的脚本中通过shell脚本命令从外部执行环境文件:
现在执行后它工作正常 . 谢谢你的建议朋友