Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ORA-04084:इस ट्रिगर प्रकार के लिए नए मान नहीं बदल सकते हैं

टिप्पणियों में अनुरोध के अनुसार मैं अपनी टिप्पणी एक उत्तर के रूप में दे रहा हूं।

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. स्ट्रिंग के रूप में एकाधिक पंक्तियों को वापस करने का चयन करें

  2. डिफ़ॉल्ट के साथ अशक्त कॉलम नहीं जोड़ते समय Oracle बग

  3. ORA-02267:स्तंभ प्रकार संदर्भित स्तंभ प्रकार के साथ असंगत है

  4. ORM का क्या मतलब है अगर मुझे Oracle .net Entity Framework के लिए app.config में हर क्षेत्र को परिभाषित करना है

  5. डेटाबेस पैचसेट प्राप्त करें