【问题标题】:Pl sql procedure dbms outputpl sql 过程 dbms 输出
【发布时间】:2015-02-24 19:17:19
【问题描述】:

我们是否可以在日志文件中写入/捕获 dbms 输出?我有一个从程序运行的过程,其中有 dbms。执行时输出将保存在哪里?请指导

【问题讨论】:

  • 你需要把你的代码的例子。你的问题,没有它,太模糊了。
  • SET SERVEROUTPUT ON;放在declare声明之前
  • 你从哪个程序调用这个过程?如果它不是本机支持的东西。例如通过set serveroutput on,您需要提取缓冲输出 - 正如文档所说,它存储在缓冲区中,而不是保存在表中。 (This is one way,但这真的取决于您的客户以及您接下来要做什么)。
  • 更糟糕的是,你可以很容易地找到答案,只需在互联网上输入你的问题。

标签: plsql oracle11g


【解决方案1】:

SET SERVEROUTPUT ON;放在declare语句之前

【讨论】:

    【解决方案2】:

    您需要使用 SET SERVEROUTPUT ON

    set serveroutput on
    begin
    dbms_output.put_line('something to write')
    end;
    

    【讨论】:

    • 我可以知道这些日志将被写入服务器的哪个位置
    【解决方案3】:

    如前所述,您必须在 DECLARE 之前包含 SET SERVEROUTPUT ON; 语句,但您还需要在操作系统级别处理输出:
    sqlplus -s user/pword@db '@script.sql;' > log.txt
    提示:-s 标志将从您的日志文件中隐藏 sqlplus 版本信息。

    【讨论】:

      猜你喜欢
      • 2018-07-08
      • 2019-06-04
      • 1970-01-01
      • 1970-01-01
      • 2021-12-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-22
      • 1970-01-01
      相关资源
      最近更新 更多