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

ORA-04076:अमान्य नया या पुराना विनिर्देश - PL/SQL - Oracle ट्रिगर

आपको :NEW . का उपयोग करना होगा और :OLD हर बार जब आप सम्मिलित किए गए स्तंभों का उल्लेख कर रहे होते हैं।

CREATE OR REPLACE TRIGGER ManageCall
    AFTER INSERT 
    ON STATE_CHANGE
    FOR EACH ROW
    DECLARE
    x_coord NUMBER;
    y_coord NUMBER;
    BEGIN
    IF :NEW.ChangeType='C' THEN
        SELECT X, Y INTO x_coord, y_coord
        FROM TELEPHONE t
        WHERE t.PHONENO = :NEW.PHONENO;
    END IF;
    END;

जब आप WHEN . का उपयोग कर रहे हों -क्लॉज, आप बताए गए यहां ('WHEN क्लॉज' के लिए खोजें):

तो निम्नलिखित को भी काम करना चाहिए:

CREATE OR REPLACE TRIGGER ManageCall
    AFTER INSERT 
    ON STATE_CHANGE
    FOR EACH ROW
    WHEN (NEW.ChangeType='C')
    DECLARE
    x_coord NUMBER;
    y_coord NUMBER;
    BEGIN
        SELECT X, Y INTO x_coord, y_coord
        FROM TELEPHONE
        WHERE PHONENO = :NEW.PHONENO;
    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. चर के साथ सरल चयन लेकिन बिना INTO

  2. स्प्रिंग बूट - डेटाबेस को पुनरारंभ करने के बाद फिर से कनेक्ट करें

  3. Oracle डेटाबेस में साहचर्य Arrays कैसे बनाएँ?

  4. संग्रहित प्रक्रिया को कॉल करते समय जेपीए लेनदेन में त्रुटि

  5. क्या Oracle के डायनेमिक SQL के भीतर समानांतर संकेत समानांतर में चलता है?