如何停止控制台输出

时间:2019-07-30 06:38:58

标签: bash oracle sqlplus

我有一个脚本,输出出现在控制台上,并且应该只在输出文件中,这是脚本中的sql查询标头:

sqlplus -s ${connString} <<EOF &

SET HEADING OFF FEEDBACK OFF ECHO OFF PAGESIZE 0
SET LINESIZE 1024
SET TRIMSPOOL ON
WHENEVER SQLERROR EXIT FAILURE
SPOOL $logdir/Report_$YYYYMMDD.txt

sql查询

SPOOL OFF
EOF

1 个答案:

答案 0 :(得分:0)

您需要将sqlplus的输出重定向到文件。为此,您可以在第一行中添加>>filename.log,如下所示:

sqlplus -s ${connString}  <<EOF >filename.log

第一行中的&是语法错误。

如果只需要一个输出文件,则不需要spool,因此脚本将如下所示:

OUTFILE="Report_$(date '+%Y%m%d').txt"
sqlplus -s ${connString} <<EOF >|"$OUTFILE"

SET HEADING OFF FEEDBACK OFF ECHO OFF PAGESIZE 0
SET LINESIZE 1024
SET TRIMSPOOL ON
WHENEVER SQLERROR EXIT FAILURE

--query

EOF