【发布时间】:2018-09-08 08:07:00
【问题描述】:
在 SQL Developer 中,当运行一些 PL/SQL 时,当过程完成时,消息“PL/SQL 过程成功完成”。被退回。
如果由于任何原因无法通过 DBMS_OUTPUT.PUT_LINE 完成操作,正在运行的 PL/SQL 可能会向用户返回错误消息,但是,用户也会看到“PL/SQL 过程已成功完成。”,其中可能会产生误导(特别是如果脚本输出窗口足够小以至于 DBMS_OUTPUT 不可见)。
有什么方法可以让 DBMS_OUTPUT 返回它应该返回的内容,同时让脚本不返回“PL/SQL 过程已成功完成。”?
如果没有,SQL Developer 中是否有任何我可能不知道的替代方案可以向用户提供即时个性化反馈?
declare
testex exception;
begin
if 1=1 then
raise testex;
end if;
exception when testex then
dbms_output.put_line('Error msg');
end;
【问题讨论】:
-
dbms_output的输出不是错误,所以程序成功的反馈是正确的。如果你想发出错误信号,那么在你的 PL/SQL 代码中抛出一个异常 -
因为我需要提供即时用户反馈,所以我将 DBMS_OUTPUT 放在异常中解释错误;但是,即使引发异常,消息“PL/SQL 过程已成功完成”。仍然显示
-
edit 你的问题并告诉我们代码
-
已添加代码。运行代码显示“错误消息”以及“PL/SQL 过程已成功完成。”。为了实用和避免混淆,我只需要显示“错误消息”
-
您的异常处理程序吞下了异常,因此就调用者而言,它从未发生过
标签: sql oracle plsql oracle-sqldeveloper dbms-output