SQL从Cron作业登录

时间:2016-10-11 17:38:42

标签: sql oracle cron sqlplus

在RHEL 7上,我试图访问SQL表。当我从终端运行代码时,我可以访问数据库,脚本按预期运行。当我从crontab运行相同的脚本时,我收到一个错误:

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`
}

1 个答案:

答案 0 :(得分:0)

如果脚本按预期运行。确保在脚本上正确设置了权限,因此当cron运行时,它具有执行脚本的正确权限。仔细检查您的环境变量。这是我如何使用bash脚本调用proc的示例。希望这会有所帮助。

#!/bin/bash

sqlplus -s <<%%
$DBLOG/$DBPWD@$ORACLE_SID

exec "my_proc"();

exit
%%