我创建了一个触发器,它只允许用户拥有 10 个当前已下订单。因此,现在当客户尝试下订单号 11 时,oracle 数据库会返回一个错误。那么3个错误。
ORA-20000:您当前有 10 个或更多订单正在处理。
ORA-06512:在“C3283535.TRG_ORDER_LIMIT”,第 12 行
ORA-04088: 执行触发器“C3283535.TRG_ORDER_LIMIT”期间出错
最重要的错误是我使用以下方法创建的:
raise_application_error(-20000, '您当前有 10 个或更多订单正在处理。');
我只是想知道在搜索并尝试了多种方法后如何更改其他两个错误的错误消息,甚至不将它们全部显示给用户?
这是我用过的代码
create or replace trigger trg_order_limit
before insert on placed_order for each row
declare
v_count number;
begin
-- Get current order count
select count(order_id)
into v_count
from placed_order
where fk1_customer_id = :new.fk1_customer_id;
-- Raise exception if there are too many
if v_count >= 10 then
EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20000, 'You currently have 10 or more orders processing.');
end if;
end;
非常感谢理查德