从显示错误中删除“无错误”输出

时间:2014-03-04 14:15:03

标签: oracle plsql output sqlplus

使用oracle设置我已经能够从oracle输出中删除大部分多余的消息。我现在遇到的问题是我要求显示错误。如果未检测到错误,则显示“无错误”。到屏幕和日志。无论如何知道如何关闭它?

目前正在使用:

  

设置serveroutput on size unlimited format wrapped;

     

关闭反馈

     

设置验证关闭

     

上设置trimspool

1 个答案:

答案 0 :(得分:2)

我认为你不能。但是,您可以使用show errors的替代方法,直接查询user_errors表,如果没有问题,则set feedback off不会显示任何内容。如果出现错误,您会看到问题:

set feedback off

create or replace procedure x42 as
begin
nul;
end;
/

select line, text
from user_errors
where type = 'PROCEDURE'
and name = 'X42'
order by sequence;

..给出输出:

Warning: Procedure created with compilation errors.

     LINE TEXT
--------- --------------------------------------------------------------
        3 PLS-00201: identifier 'NUL' must be declared
        3 PL/SQL: Statement ignored

使用有效代码:

create or replace procedure x42 as
begin
null;
end;
/

select line, text
from user_errors
where type = 'PROCEDURE'
and name = 'X42'
order by sequence;

prompt finished

...你什么也看不见(除了为效果添加了提示):

finished

当然,这确实意味着您必须定制每个查询以匹配前面的语句,这可能容易出错。您可能希望等到脚本结束并将所有错误放在一起:

select type, name, line, text
from user_errors
order by type, name, sequence;