Theo yêu cầu trong nhận xét, tôi đang đưa ra nhận xét của mình như một câu trả lời.
Sự cố của bạn là do bạn đang cố gắng thay đổi giá trị SAU KHI giá trị đó vẫn tồn tại, hãy thử thay đổi trình kích hoạt của bạn thành BEFORE
như:
CREATE OR REPLACE TRIGGER TOTAL
BEFORE UPDATE OR INSERT ON ORDER_ITEMS
FOR EACH ROW
DECLARE
temp NUMBER;
today DATE;
BEGIN
temp:=(:NEW.item_price-:NEW.discount_amount)*:NEW.quantity;
today := CURRENT_DATE;
:NEW.TOTAL := temp;
dbms_output.put_line('Updated on:' || today || ' item number: '
|| :NEW.item_id || 'order number:' || :NEW.order_id
|| 'total: ' ||:NEW.total);
END;
/