清空Oracle spool中的标题

9

在运行以下命令之前,我已经将文件进行了缓冲,并得到了如下输出:

我设置了heading off和feedback off。

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>,只想要输出结果。

谢谢提前。

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,以删除输出文件中日期前面可能出现的空行。


谢谢Tony,你的想法很有效。还有Benjamin,感谢你的脚本。祝好, Seenu。 - Srinivasan Thirunavukkarasu
请随意为您喜欢的任何答案点赞,并接受最能解决您问题的答案! - Tony Andrews

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

没有变化。请查看输出结果。SQL> SELECT SYSDATE FROM DUAL;20-JAN-10 SQL> SPOOL OFF - Srinivasan Thirunavukkarasu
请检查现在的修改答案。 - Vijay
1
这个解决方案不会换行或截断行。这正是我想要的。 - Tulains Córdova

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接