我有一个shell脚本,其中包含以下语句。它独立执行时工作正常。
$ORACLEHOME/bin/sqlplus -s $BDBUSER@$LINKNAME/$BDBPASSWORD <<EOF
DECLARE
COUNT1 NUMBER:=0;
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE TABLE1';
EXECUTE IMMEDIATE 'CREATE TABLE TABLE1 AS SELECT * FROM $SCHEMA_NAME.TABLE2@DBLINKNAME';
END;
/
EOF
但是当我从crontab调用此ffrom时,它失败了。我的crontab看起来像
*/1 * * * * /bin/sh /home/mig/Test.sh > /home/mig/Test.txt
我在日志中收到以下错误。
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
感谢任何帮助。
答案 0 :(得分:1)
尝试在shell脚本的顶部添加此行。
doctype html
html
head
title= title
body
h1= text
script.
console.log('#{token}')
使用shell上的echo命令获取ORACLE_HOME环境变量的值
答案 1 :(得分:1)
Oracle需要ORACLE_HOME
,您的脚本需要ORACLEHOME
毋庸置疑,将脚本更改为使用ORACLE_HOME会更好,但这不是问题的根本原因。
crontab命令将跳过您的登录脚本。我认为ORACLE_HOME已设置在.profile
中,因此请执行此操作。
*/1 * * * * source ~/.profile; /bin/sh /home/mig/Test.sh > /home/mig/Test.txt