66

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

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

4

4 回答 4

77

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

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

SPOOL <output file path>

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

停止命令输出写入类型

SPOOL OFF
于 2013-04-13T06:25:41.917 回答
37

另请注意,SPOOL输出由一些 SQLPlus 设置驱动:

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

  • SET TRIMSPOOL OFF|ON- 如果设置OFF(默认),每个输出行将被填充到LINESIZE. 如果设置ON,每条输出线都将被修剪。

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

这些是大问题,但如果您只想要输出而不需要所有 SQLPlus 喋喋不休,还有其他一些需要考虑。

于 2013-04-13T06:34:17.857 回答
3

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

  • 无论我使用 Toad/with polling 还是 sqlplus,对于偶尔使用 dbms_output.put_line 命令的长时间运行脚本,我都会在脚本执行结束时获得输出
  • 设置服务器输出;和 dbms_output.enable(); 应该出现在脚本中
  • 保存输出 SPOOL 命令不足以将 DBMS_OUTPUT 行打印到文件中 - 必须使用通常的 > windows CMD 重定向。调用 sqlplus 后,可以将密码等提供给空提示。还有“/”指令和“exit;” 命令应该放在脚本中,或者作为上面的密码以交互方式给出(除非在调用 sqlplus 期间指定)
于 2018-03-16T10:48:31.300 回答
2

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

于 2014-10-14T15:31:19.247 回答