33

有没有一种方法可以在 sqlplus 中将 SERVEROUTPUT 设置为 ON,但以某种方式抑制在完成执行 plsql 过程时自动生成的消息“PL/SQL 过程成功完成”?

4

2 回答 2

60

使用命令:

SET FEEDBACK OFF

在运行程序之前。之后,您可以再次将其重新打开:

SET FEEDBACK ON
于 2008-10-30T15:13:31.617 回答
1

这在 sqlplus 中对我来说效果很好,但我确实注意到“设置反馈关闭”会抑制 Sql Developer 中的错误(至少版本 17.2.0.188)。如果您使用 Sql Developer,请注意以下事项:

create or replace procedure test_throw_an_error as buzz number; begin dbms_output.put_line('In test_throw_an_error. Now, to infinity!'); buzz:=1/0; end;
/
set serveroutput on
set feedback off
exec test_throw_an_error;
exec dbms_output.put_line('Done, with feedback off');
set feedback on
exec test_throw_an_error;
exec dbms_output.put_line('Done, with feedback on');

结果:

Procedure TEST_THROW_AN_ERROR compiled

In test_throw_an_error. Now, to infinity!

Done, with feedback off

In test_throw_an_error. Now, to infinity!


Error starting at line : 11 in command -
BEGIN test_throw_an_error; END;
Error report -
ORA-01476: divisor is equal to zero
ORA-06512: at "ECTRUNK.TEST_THROW_AN_ERROR", line 1
ORA-06512: at line 1
01476. 00000 -  "divisor is equal to zero"
*Cause:    
*Action:
Done, with feedback on

PL/SQL procedure successfully completed.
于 2019-11-05T19:36:06.257 回答