2016-10-11 14 views
1

RHEL 7では、SQLテーブルにアクセスしようとしています。ターミナルからコードを実行すると、データベースにアクセスでき、スクリプトは期待どおりに実行されます。私はcrontabファイルから同じスクリプトを実行すると、私はエラーを取得する:CronジョブからのSQLログイン

Error 6 initializing SQL*Plus 
SP2-0667: Message file sp1<lang>.msb not found 
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory 

ここに私のコードです:

getSequence() 
{ 
    SQLPLUS=/oracle/app/oracle/product/12c/bin/sqlplus 
    seq_num=$($SQLPLUS -S $OPS_DB_USER/$OPS_DB_ORACLE_PASSWD<<-EOF 
    set heading off 
    set feedback off 
    select Sequence.nextval from dual; 
    EOF) 
    VERSION=`printf "%07d" $seq_num` 
} 
+0

OracleソフトウェアディレクトリにORACLE_HOMEを設定しようとしましたか? – jftuga

+0

スクリプト内からORACLE_HOME =/oracle/app/oracle/product/12c/binをエクスポートしようとしました。 – KrisC

+0

ORACLE_HOME =/oracle/app/oracle/product/12c(exclude/bin)は、BINディレクトリではなくHOMEディレクトリが必要です。 – jftuga

答えて

0

期待通りにスクリプトが実行された場合。 cronが実行されるときにスクリプトに適切な権限が設定されていることを確認してください。環境変数も再確認してください。ここでは、bashスクリプトを使ってprocを呼び出す方法の例を示します。お役に立てれば。

#!/bin/bash 

sqlplus -s <<%% 
$DBLOG/[email protected]$ORACLE_SID 

exec "my_proc"(); 

exit 
%%