Oracle SQL Developer - 不显示错误消息

时间:2017-06-05 21:32:54

标签: sql oracle

CREATE OR REPLACE FUNCTION func_totalStaffOrders( v_staffID IN INTEGER)   RETURN VARCHAR AS v_totalOrders NUMBER; MESSAGE VARCHAR2(100); BEGIN IF v_staffID IS NOT NULL THEN SELECT COUNT(order_id) INTO v_totalOrders FROM orders WHERE staff_ID = v_staffID;      MESSAGE := 'Staff with the ID ' || v_staffID ||' has took an overall of ' || v_totalOrders || ' order/s.'; RETURN MESSAGE;   ELSE MESSAGE:='Null values are not allowed.'; RETURN MESSAGE; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN MESSAGE := 'Invalid staff ID entered.'; RETURN MESSAGE; WHEN OTHERS THEN MESSAGE := 'Error! ' || SQLERRM;   RETURN MESSAGE; END;

此功能计算单个工作人员的订单总数。它接收员工ID并返回订单总数。如果我输入的系统员工ID不在系统中,则不会显示异常消息。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:2)

您的查询总是会返回一个值。如果没有匹配,则计数将为0,因此v_totalorders将为零。

没有生成异常。您需要在if上明确v_totalorders逻辑。