在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`
}
答案 0 :(得分:0)
如果脚本按预期运行。确保在脚本上正确设置了权限,因此当cron运行时,它具有执行脚本的正确权限。仔细检查您的环境变量。这是我如何使用bash脚本调用proc的示例。希望这会有所帮助。
#!/bin/bash
sqlplus -s <<%%
$DBLOG/$DBPWD@$ORACLE_SID
exec "my_proc"();
exit
%%