【发布时间】:2017-06-02 17:38:01
【问题描述】:
在此脚本中,我尝试将 SQL 查询的结果转换为变量计数,稍后我会比较该变量计数以确定是否发送电子邮件。
当我执行脚本时,我得到一个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
【问题讨论】:
-
你在 $LOGFILE 中看到了什么?
-
是哪一行导致了这个错误?
-
我在日志文件中得到查询结果。 ./abcd.sh: line 27: [: Loader File Failed:: 554187 970 VSTL140117.VSTL140117 300: integer expression expected
-
那么你的问题似乎是 SQL 问题,而不是 Bash 脚本问题。你不能在 Bash 中使用这样的字符串进行算术测试。