【问题标题】:Shell script to deploye plsql packages ||Sqlplus: command not found error部署pl sql包的Shell脚本||Sqlplus:找不到命令错误
【发布时间】:2016-03-01 19:58:50
【问题描述】:

我创建了以下 shell 脚本来部署下面提到的所有包和表脚本。 我首先通过以下方式进入目录:

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/$APPS_PWD@$SID"

CUSTOM_USER="$CUSTOM/$CUSTOM_PWD@$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

【问题讨论】:

    标签: sql oracle shell unix


    【解决方案1】:

    您的 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- 我应该在我的脚本中添加这个?
    • 如何在 /opt/oracle/product/12.1.0/db_1 上找到正确的 Oracle 安装
    • @sasteck- 我确实在我的脚本中添加了这个。但还是出现同样的错误
    • 这只是一个示例,我假设您在此服务器上安装了客户端或数据库?您调用 sqlplus 的完整路径是什么?或者你以前从未在那里执行过 sqlplus ?
    • @sasteck- 我还没有执行 sqlplus。实际上是 shell 脚本本身的新手
    猜你喜欢
    • 1970-01-01
    • 2013-04-26
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 2017-11-10
    • 2016-10-07
    • 2019-12-25
    相关资源
    最近更新 更多