将sql输出重定向到shell脚本中的文件

时间:2017-07-02 21:01:41

标签: sql shell

我在执行以下脚本代码时遇到问题。

$ORACLEHOME/bin/sqlplus -s $DBUSER/$DBPASSWORD <<EOF
    set pages 0 feedback off
    SELECT * FROM ERR_STG_ROAMING_PARTNER;

EOF > Err_File.txt

出现以下错误消息。

./Roaming.sh: line 213: warning: here-document at line 206 delimited by end-of-file (wanted `EOF')
./Roaming.sh: line 214: syntax error: unexpected end of file

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

试试这个:

$ORACLEHOME/bin/sqlplus -s $DBUSER/$DBPASSWORD > Err_File.txt <<EOF
    set pages 0 feedback off
    SELECT * FROM ERR_STG_ROAMING_PARTNER;

EOF

即,在输入heredoc重定向之前指定输出重定向。 shell期望EOF在终止heredoc的行上独立。{/ p>

您收到的错误消息是shell抱怨在找到EOF之前找到文件结尾(脚本文件)。 EOF用于heredoc分隔符可能会导致一些混乱!