Jak je požadováno v komentářích, uvádím svůj komentář jako odpověď.
Váš problém spočívá v tom, že se pokoušíte změnit hodnotu PO tom, co hodnota zůstala zachována, zkuste změnit spouštěč na BEFORE
jako:
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;
/