将sqlplus输出写入文件

时间:2013-04-13 06:24:31

标签: oracle

使用sqlplus.exe我正在寻找一种将sqlplus输出写入文件的方法。

无论如何我可以这样做,目前输出只写入控制台。

4 个答案:

答案 0 :(得分:62)

您可以使用SPOOL命令将信息写入文件。

在执行任何命令之前,键入以下内容:

SPOOL <output file path>

以下输出的所有命令都将写入输出文件。

停止命令输出写入类型

SPOOL OFF

答案 1 :(得分:31)

另请注意,SPOOL输出由几个SQLPlus设置驱动:

  • SET LINESIZE nn - 最大线宽;如果输出更长,它将换行以显示每个结果行的内容。

  • SET TRIMSPOOL OFF|ON - 如果设置为OFF(默认值),则每个输出行都会填充到LINESIZE。如果设置ON,则会修剪每个输出行。

  • SET PAGESIZE nn - 每次重复标题时输出的行数。如果设置为零,则不输出标头;只是细节。

这些都是大佬,但是如果你只是想要输出而没有所有的SQLPlus聊天,还有一些其他的需要考虑。

答案 2 :(得分:2)

确保您可以访问要尝试假脱机的目录。我试图假脱机到root并且它没有创建文件(例如c:\test.txt)。您可以通过发出spool命令来检查假脱机的位置。

答案 3 :(得分:0)

只是为了保存我自己的所有扣除(用于在客户端上保存DBMS_OUTPUT输出,使用sqlplus):

  • 无论我使用Toad / with polling还是sqlplus,对于长时间运行的脚本,偶尔会有dbms_output.put_line命令,我会在脚本执行结束时得到输出
  • 设置serveroutput;和dbms_output.enable();应该出现在剧本
  • 保存输出SPOOL命令不足以将DBMS_OUTPUT行打印到文件 - 不得不使用通常的&gt; Windows CMD重定向。调用sqlplus后,可以将密码等提供给空提示符。还有&#34; /&#34;指令和&#34;退出;&#34;命令应该放在脚本中,或者以交互方式作为上面的密码给出(除非在调用sqlplus期间指定)