我需要运行一个通过java执行的shell脚本。但是当我从java运行时,它无法识别sqlplus命令并将sqlplus的错误抛出为没有这样的文件或目录 ..
我的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)的情况下连接到数据库,或者是他们以任何其他方式执行此操作。
任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
终于解决了。
实际上当我通过java运行我的shell脚本时,它无法识别sqlplus命令。 sqlplus命令的定义存在于UNIX实例的环境文件中,但它无法自行执行。 所以我在我的脚本中通过shell脚本命令从外部执行环境文件:
cd~
。 〜/ .bash_profile中
现在执行后它工作正常。 感谢您的建议朋友