我正在使用Oracle Apex。 我需要创建一个用于检查no的触发器。股票是否< 0。 如果没有。库存< 0然后停止插入操作然后向用户提示警告消息。 以下编码剂量不起作用。我的代码出了什么问题?请帮忙。
我的编码:
CREATE OR REPLACE TRIGGER cw_service_b4_trigger
BEFORE INSERT ON cw_serviceline
FOR EACH ROW
DECLARE
exist_stock number;
BEGIN
select stock into exist_stock from cw_inventory where inv_id = :new.inv_id;
if (exist_stock - :new.quantity) < 0 then
dbms_output.put_line ('Out of Stock');
return;
end if;
END;
/
答案 0 :(得分:4)
你没有抛出任何错误。您的所有触发器都会输出一条消息。
return
不会导致INSERT停止,只会导致触发逻辑返回。
相反,您需要引发错误以导致插入失败。
if exist_stock < :new.quantity then
raise_application_error(-20000, 'Out of stock');
end if;