2016-10-11 1 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_HOME 설정을 시도 했습니까? – jftuga

+0

스크립트 내에서 ORACLE_HOME =/oracle/app/oracle/product/12c/bin을 내보냈습니다. – KrisC

+0

홈 디렉토리가 아니라 BIN 디렉토리가 원하는대로 ORACLE_HOME =/oracle/app/oracle/product/12c (exclude/bin)를 시도하십시오. – jftuga

답변

0

가. 권한이 스크립트에서 올바르게 설정되었는지 확인하여 cron이 실행될 때 스크립트를 실행할 수있는 올바른 권한을가집니다. 환경 변수도 두 번 확인하십시오. 다음은 내가 bash 스크립트를 사용하여 proc를 호출하는 예제이다. 희망이 도움이됩니다.

#!/bin/bash 

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

exec "my_proc"(); 

exit 
%%