我有一个脚本,输出出现在控制台上,并且应该只在输出文件中,这是脚本中的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
答案 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