टिप्पणियों में अनुरोध के अनुसार मैं अपनी टिप्पणी एक उत्तर के रूप में दे रहा हूं।
आपकी समस्या इसलिए है क्योंकि आप मान के बने रहने के बाद मान को बदलने का प्रयास कर रहे हैं, अपने ट्रिगर को BEFORE
में बदलने का प्रयास करें के रूप में:
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;
/