Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

ORA-04084:không thể thay đổi giá trị MỚI cho loại trình kích hoạt này

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;
/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để trả về boolen trong refcursor?

  2. Nhận id chèn cuối cùng với Oracle 11g bằng JDBC

  3. Làm thế nào để bạn biết một chỉ số tốt là gì?

  4. Cách chia một đối tượng CLOB bằng cách sử dụng và:dấu phân tách trong Oracle thành nhiều bản ghi

  5. Oracle Nhìn về phía sau Tích cực