9

在运行以下命令之前,我已经假脱机了一个文件并得到了这样的输出,

我已经出发了,反馈已关闭

SET HEADING OFF
SET FEEDBACK OFF
SPOOL D:\TEST.TXT
SELECT SYSDATE FROM DUAL;
SPOOL OFF

TEST.TXT 中的输出:

SQL> SELECT SYSDATE FROM DUAL;

20-JAN-09

SQL> SPOOL OFF

我怎样才能删除两个 SQL> 行。我只想要输出。

提前致谢。

4

2 回答 2

15

您需要的命令是:

SET ECHO OFF

但是,它仅适用于从脚本运行的代码,而不适用于交互式输入的命令。您将创建一个像这样的脚本文件(例如称为test.sql):

SET HEADING OFF FEEDBACK OFF ECHO OFF PAGESIZE 0
SPOOL D:\TEST.TXT 
SELECT SYSDATE FROM DUAL; 
SPOOL OFF

然后在 SQL Plus 中像这样运行它:

SQL> @test

我在 SET 命令中添加了 PAGESIZE 0 以删除您在输出文件中的日期之前获得的空白行。

于 2010-01-20T10:37:42.503 回答
4

用这个:

#!/bin/ksh
CONNECT_STRING=dbapp/dbapp@inst
SQLPLUS_SETTINGS="SET PAGESIZE 1000 LINESIZE 500 ECHO OFF TRIMS ON TAB OFF FEEDBACK OFF HEADING OFF"
SQL_RESULT=`sqlplus -s ${CONNECT_STRING} << EOF
${SQLPLUS_SETTINGS}
select sysdate from dual;
exit;
EOF`

echo $SQL_RESULT >output_file
于 2010-01-20T09:44:25.997 回答