ユーザーが現在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件以上の注文を処理しています。');
検索して、他の2つのエラーのエラーメッセージを変更する方法や、ユーザーにすべてを一緒に表示しない方法を試してみたところ、疑問に思いました。
これが私が使用したコードです
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;
どうもありがとうリチャード