【问题标题】:Writing sqlplus output to a file将 sqlplus 输出写入文件
【发布时间】:2013-04-05 18:47:12
【问题描述】:

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

有没有我能做到的,目前输出只写到控制台。

【问题讨论】:

标签: oracle


【解决方案1】:

只是为了保存我自己的推论(用于在客户端保存 DBMS_OUTPUT 输出,使用 sqlplus):

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 最后一个指针只是回显使用 spool 命令设置的内容。它没有给出我想要的完整绝对路径。
    • 这也适用于 linux 吗?我尝试在我的 linuxbox 中提供 /tmp 位置。但我得到了错误:'遇到符号“SPOOL”'。有什么解决方法吗?
    【解决方案3】:

    还要注意SPOOL 输出是由一些 SQLPlus 设置驱动的:

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

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

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

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

    【讨论】:

      【解决方案4】:

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

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

      SPOOL <output file path>
      

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

      停止命令输出写入类型

      SPOOL OFF
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多