2016-03-29 21 views
1

私はすべてのcreateおよびalterテーブルスクリプトを持つAlter_t_new.sqlを実行しているシェルスクリプトを作成しました。今、私はどんなエラーが出ても、ログファイルにスプールされるように作られています。私はSPOOL $ LOGFILEを試みたが、それはエラーにオブジェクト作成をログファイルにスプールする方法

SPOOL: command not found 

シェルスクリプトを投げている:

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 "">>$LOGFILE 
echo "Files copied successfully !!! " 
echo "Files copied successfully !!! " "">>$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 @Alter_t_new.sql 
then 
SPOOL $LOGFILE 
    echo "Custom itables created successfully in APPS schema"  "">>$LOGFILE 
    echo "Custom itables created successfully in APPS schema" 
    SPOOL OFF 
else 
    echo "Error in creating custom itables in APPS schema"  "">>$LOGFILE 
    echo "Error in creating Custom itables in APPS schema" 
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 
# ***************************************************************************** 

答えて

0

はあなたがあなたのスクリプト内SPOOLコマンドを使用する必要があり、それがSQLPLUSコマンドでのです。たとえば、ファイルの内容は次のとおりです。あなたはまた、出力を抑制するためにSET TERMOUT OFFコマンドを使用することができます

SPOOL my_log.log 
CREATE TABLE t1 
    (col1 NUMBER); 
SPOOL OFF 

The TERMOUT setting controls whether SQLPlus displays output generated by SQL statements, PL/SQL blocks, and SQLPlus commands. This setting applies only when SQLPlus is executing a script file. SQLPlus displays output from commands entered interactively.

+0

@ hinotf-サーバーにmy_logを作成する必要がありますか? –

+0

SQLPlusが実行されている場所で@sreekemboseログファイルが作成されました – hinotf

+0

ありがとうございました! –

1

私はSPOOLがAlter_t_new.sqlファイルにある必要があると考えています。 SQLPLUSコマンド

sqlplus $APPS_USER @Alter_t_new.sql $LOGFILE 

、あなたが

に追加しているログファイルに追加し、その引数を使用する引数としての$ LOGFILEを渡す

(from .sh script) 
    if sqlplus $APPS_USER @Alter_t_new.sql $LOGFILE 
    then 
     echo "Custom itables created successfully in APPS schema"  "">>$LOGFILE 
     echo "Custom itables created successfully in APPS schema" 
     SPOOL OFF 
    else 
     echo "Error in creating custom itables in APPS schema"  "">>$LOGFILE 
     echo "Error in creating Custom itables in APPS schema" 
    fi 


    (from Alter_t_new.sql) 
    WHENEVER SQLERROR EXIT SQL.SQLCODE 

    spool &1 APPEND 

: 私はこのような何かをするだろう

spool &1 APPEND 

また、WHENEVER SQLERROR EXIT SQL.SQLCODEビットは、それを呼び出す.shにエラーを返す必要があります。 WHEREEVER SQLERRORに関する情報は次のとおりです。https://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12052.htm

これが役立つことを願っています。

関連する問題