【发布时间】:2010-09-20 00:20:04
【问题描述】:
有没有一种方法可以在 sqlplus 中将 SERVEROUTPUT 设置为 ON,但以某种方式抑制在完成执行 plsql 过程时自动生成的消息“PL/SQL 过程成功完成”?
【问题讨论】:
有没有一种方法可以在 sqlplus 中将 SERVEROUTPUT 设置为 ON,但以某种方式抑制在完成执行 plsql 过程时自动生成的消息“PL/SQL 过程成功完成”?
【问题讨论】:
使用命令:
SET FEEDBACK OFF
在运行程序之前。之后您可以再次打开它:
SET FEEDBACK ON
【讨论】:
SET FEEDBACK ON 重新启用它
ON,对吗?还是将其设置为 OFF 就像一些系统范围的设置之类的?
这在 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.
【讨论】: