在这个脚本中,我尝试将SQL查询的结果放入变量count中,稍后比较该变量count以确定是否发送电子邮件。
当我执行脚本时,我得到一个integer expression expected
错误。
这是我的剧本。
LOGFILE=/home/ni916c/${SCRIPT}.$RUN_DATE.log
RPTNAME=/home/ni916c/ASPEN_LOADER_error.xls
# rm $LOGFILE
count=$(sqlplus -S ni916c/rajabeta17 <<-EOF
set heading off
SET FEEDBACK OFF
SELECT 'Loader File Failed:: '||to_char(load_id) ||' '|| to_char(file_id) ||' '||file_name||' '||to_char(load_status_id) FROM DL_FILES_RECEIVED
WHERE
period_id = to_number(to_char(sysdate,'yyyymm'))
and load_status_id=300;
-- in (select load_status_id from DL_LOAD_STATUS where category like '%ERROR%');
exit;
EOF
)
echo "$count" >> $LOGFILE
if [ "$count" -ne 0 ]
then
mailx -s "LOADER ERROR" rk862h@att.com < $LOGFILE
fi
2条答案
按热度按时间fwzugrvs1#
我假设错误来自以下两个来源之一:
1.失败的是
if [ "$count" -ne 0 ]
,因为您的语句没有返回整数。如果问题出现在上面的(2)中,您可能需要在脚本中添加某种错误处理,以检测意外的结果。例如:
您还应确保SQL语句没有返回导致
count
变量不能被识别为整数的其他字符,在这种情况下,可能需要进行一些修整。mepcadol2#
这是在bash变量中获取postgresql查询结果的方法