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

ORA-04091:तालिका xx_xx उत्परिवर्तित हो रही है, ट्रिगर/फ़ंक्शन इसे नहीं देख सकता है

आप ट्रिगर में परिवर्तनशील तालिका को क्वेरी नहीं कर सकते।
इसे देखें:https://docs.oracle.com/cd/B19306_01/appdev.102/b14251/adfns_triggers.htm

इसके बजाय इस कोड को आजमाएं:

प्रत्येक ROWDECLARE t_name varchar2(255) के लिए
create or replace 
TRIGGER log_changes 
  AFTER INSERT OR UPDATE OR DELETE
  ON passengerlist1
  FOR EACH ROW

DECLARE
 t_name varchar2(255);
 t_surname varchar2(255);
BEGIN
   IF DELETING THEN
    SELECT PERSON1.GIVENNAME, PERSON1.FAMILYNAME INTO T_NAME,  T_SURNAME
    FROM PERSON1
    WHERE PERSON1.PERSONID = :OLD.PERSONID;

    INSERT INTO LOGS VALUES (T_NAME, T_SURNAME, :OLD.FLIGHTID, SYSDATE);
   END IF;

   IF UPDATING OR INSERTING THEN

     SELECT PERSON1.GIVENNAME,  PERSON1.FAMILYNAME  INTO T_NAME, T_SURNAME 
     FROM PERSON1 
     WHERE PERSON1.PERSONID = :NEW.PERSONID;

     INSERT INTO LOGS VALUES (T_NAME, T_SURNAME, :NEW.FLIGHTID, SYSDATE);
   END IF;
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. org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter त्रुटि

  3. MERGE स्टेटमेंट में कई कॉलम अपडेट करें ORACLE

  4. प्राथमिक कुंजी अद्यतन बनाम प्राथमिक कुंजी हटाना + सम्मिलन

  5. कैसे एक स्ट्रिंग oracle से दिनांक स्वरूप निकालने के लिए?