首页 > 解决方案 > 从 shell 脚本中的 If else 块运行 sql 查询

问题描述

我想连接 sql db 并从 shell 脚本执行 sql 查询。我试过用这个

if float_cmp "$size1 > 7.50"; then
    echo "### THE DATA SIZE IS GREATER THAN 7.5 GB ###"
    echo "############### DROPPING CREATED $IMPUSER USER ###########################"
    ${PATH_TO_CLIENT}sqlplus $EXPUSER/$EXPPWD@$ENDPOINT<< EOF
    drop user $IMPUSER cascade;
    exit;
    EOF
    exit 1
else
    echo "### THE DATA SIZE IS OKAY ###"
fi

该语句在 if 块之外工作,但在 IF 块中执行时抛出错误

line 80: warning: here-document at line 72 delimited by end-of-file (wanted `EOF')
line 81: syntax error: unexpected end of file

谁能告诉我我做错了什么以及解决方案是什么?

标签: sqlshellif-statement

解决方案


尝试删除 here-document 中的缩进:

if float_cmp "$size1 > 7.50"; then
    echo "### THE DATA SIZE IS GREATER THAN 7.5 GB ###"
    echo "############### DROPPING CREATED $IMPUSER USER ###########################"
    "${PATH_TO_CLIENT}"sqlplus $EXPUSER/$EXPPWD@$ENDPOINT<< EOF
drop user $IMPUSER cascade;
exit;
EOF
    exit 1
else
    echo "### THE DATA SIZE IS OKAY ###"
fi

推荐阅读