用于部署plsql包的Shell脚本|| Sqlplus:找不到命令错误
问题描述:
我已经创建了以下用于部署下面提到的所有包和表脚本的shell脚本。 我刚进德直供方式:用于部署plsql包的Shell脚本|| Sqlplus:找不到命令错误
cd /home/test
然后我打电话给我的shell脚本SH XXHCM_OBJECT.sh
#!/usr/bin/sh
# Parameters to be accepted from command prompt
# Parameter 1 = Apps username/Password
# Parameter 2 = BOLINF username/Password
# Parameter 3 = Host name for the instance
# Parameter 4 = Port Number for the instance
# Parameter 5 = DB Name for the instance
#APPS_USER="$1"
#BOLINF_USER="$2"
#HOST_NAME="$3"
#PORT_NUMBER="$4"
#DB_NAME="$5"
LOGFILE="$CUST_TOP/XXHCM_OBJECTS.log"
#APPS_USERNAME=$(echo $APPS_USER|cut -f "1" -d /)
#APPS_PWD=$(echo $APPS_USER|cut -f "2" -d /)
#-
#- reading program parameters
#-
echo "Enter APPS User: "
read APPS
echo "Enter APPS Password: "
stty -echo
read APPS_PWD
stty echo
echo "Enter Custom User: "
read CUSTOM
echo "Enter Custom Password: "
stty -echo
read CUSTOM_PWD
stty echo
echo "Enter Install Server (SID): "
read SID
APPS_USER="$APPS/[email protected]$SID"
CUSTOM_USER="$CUSTOM/[email protected]$SID"
APPS_USERNAME=$(echo $APPS_USER|cut -f "1" -d /)
APPS_PWD=$(echo $APPS_USER|cut -f "2" -d /)
echo "" > $LOGFILE
echo "" > $LOGFILE
echo "Starting installation of XXHCM_OBJECTS - XXHCM_OBJECTS ..."
echo "Starting installation of XXHCM_OBJECTS - XXHCM_OBJECTS ..." >>$LOGFILE
echo "" >>$LOGFILE
echo "" >>$LOGFILE
echo "Copying Files To Appropriate Directories ..."
echo "Copying Files To Appropriate Directories ..." >>$LOGFILE
echo "" >>$LOGFILE
echo "Changing permissions ... " >> $LOGFILE
chmod 777 *.*
echo "Changed permissions ... " >> $LOGFILE
echo "">>$LOGFILE
echo "Creating Custom Package, Synonyms and Grants...">>$LOGFILE
echo "Creating Custom Package, Synonyms and Grants..."
echo "">>$LOGFILE
if sqlplus $APPS_USER @XXHCM_MAPPING_STG.sql
then
echo "Insert data into entities table in APPS schema" >> $LOGFILE
echo "Insert data into entities table in APPS schema"
else
echo "Error in Insert data into entities table in APPS schema" >> $LOGFILE
echo "Error in Insert data into entities table in APPS schema"
fi
if sqlplus $APPS_USER @XXdiv_ASSIGNMENT_SUPERVISOR_STG.sql
then
echo "Insert data into entities table in APPS schema" >> $LOGFILE
echo "Insert data into entities table in APPS schema"
else
echo "Error in Insert data into entities table in APPS schema" >> $LOGFILE
echo "Error in Insert data into entities table in APPS schema"
fi
if sqlplus $APPS_USER @XXHCM_STAGING_TO_I.pks
then
echo "Package specification for package XXHCM_STAGING_TO_I created in APPS schema" >> $LOGFILE
echo "Package specification for package XXHCM_STAGING_TO_I created in APPS schema"
else
echo "Error in creating Package specification" >> $LOGFILE
echo "Error in creating Package specification"
fi
if sqlplus $APPS_USER @XXHCM_STAGING_TO_I.pkb
then
echo "Package body created for package XXHCM_STAGING_TO_I in APPS schema" >> $LOGFILE
echo "Package body created for package XXHCM_STAGING_TO_I in APPS schema"
else
echo "Error in creating Package body" >> $LOGFILE
echo "Error in creating Package body"
fi
echo "">>$LOGFILE
echo "Package, Synonyms,grants and Tables created successfully">>$LOGFILE
echo "Package, Synonyms,grants and Tables created successfully"
echo "">>$LOGFILE
echo "Installation completed for XXHCM_OBJECTS - XXHCM_OBJECTS"
echo "Installation completed for XXHCM_OBJECTS - XXHCM_OBJECTS" >> $LOGFILE
# *****************************************************************************
# End of Script
# *****************************************************************************
但在输出它给我的错误:
sqlplus: command not found
答
看起来像您缺少PATH中的sqlplus安装位置。假设你的Oracle安装是/opt/oracle/product/12.1.0/db_1
,sqlplus的应该是/opt/oracle/product/12.1.0/db_1/bin
,所有你需要做的就是添加到您的脚本是这样的:
export PATH=/opt/oracle/product/12.1.0/db_1/bin:$PATH
或像人们通常做,导出ORACLE_HOME变量,并把它添加到PATH,就像
export ORACLE_HOME=/opt/oracle/product/12.1.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
@ sasteck-我应该在脚本中添加这个吗? –
我如何找到正确的Oracle安装位于/opt/oracle/product/12.1.0/db_1 –
@ sasteck-我在脚本中添加了此项。但仍然有同样的错误 –