我正在处理Pl / sql过程,无法显示异常错误消息。我能够显示不引发异常的正确值。代码
create or replace procedure proc(p_empNo in costs.empNo%type)
is
sumCost number;
noNumber exception;
pragma exception_init(noNumber, -20001);
begin
select sum(cost) into sumCost
from costs
where empNo = p_empNo;
if sumCost <= 0 then
raise_application_error(-20001, 'no matching number');
else
dbms_output.put_line(sumCost);
end if;
exception when noNum then
dbms_output.put_line(sqlerrm);
end proc;
基本上我正在尝试为所有具有相同编号的员工求和。如果没有匹配的员工
答案 0 :(得分:2)
if sumCost <= 0 then
因为null不是&lt; = 0。 null不是满足此类测试的数字。
解决方案:
if NVL(sumCost,0) <= 0 then
答案 1 :(得分:0)
使用
SET SERVEROUTPUT ON
命令显示dbms_output结果。
在SQLDeveloper中,您可以在菜单View / DBMS Output中打开serveroutout,然后在DBMS输出窗口中单击green plus以创建子窗口以连接您需要的内容。