ईएमपी तालिका में रिकॉर्ड डालने या अपडेट करने के दौरान सत्यापन करने के लिए ट्रिगर उदाहरण डालने या अपडेट करने से पहले ओरेकल निम्नलिखित है।
ट्रिगर उदाहरण डालने या अपडेट करने से पहले Oracle
नीचे दिया गया ट्रिगर ईएमपी टेबल पर निम्नलिखित दो जांच करेगा। (1) यदि रिकॉर्ड सम्मिलित करते हैं, तो यह जांच करेगा कि कमीशन कॉलम 500 से अधिक नहीं है। (2) यदि अपडेट किया जा रहा है, तो यह जांच करेगा कि जॉब कॉलम को शून्य के रूप में सेट नहीं किया जाना चाहिए।
CREATE OR REPLACE TRIGGER TRIG_EMP_BEF_UPD_INS BEFORE INSERT OR UPDATE ON EMP FOR EACH ROW BEGIN IF INSERTING THEN /* commission should not be greater than 500, for new record*/ IF :new.comm > 500 THEN raise_application_error ( -20001, 'Commission should not be greater than 500.'); END IF; ELSIF UPDATING THEN /* check for column JOB should not be set as null while update*/ IF :new.job IS NULL THEN raise_application_error (-20001, 'Column JOB should have a value.'); END IF; END IF; END;
इन्सर्ट स्टेटमेंट के लिए ट्रिगर के ऊपर टेस्ट करें
Insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) Values (7399, 'A.SMITH', 'CLERK', 7902, TO_DATE('12/17/1980 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 800, 550, 20);
आउटपुट
Error at line 1 ORA-20001: Commission should not be greater than 500. ORA-06512: at "TRIG_EMP_BEF_UPD_INS", line 6 ORA-04088: error during execution of trigger 'TRIG_EMP_BEF_UPD_INS' Script Terminated on line 1.
अपडेट स्टेटमेंट के लिए ट्रिगर के ऊपर टेस्ट करें
UPDATE EMP SET sal = 900, job = NULL WHERE empno = 7499;
आउटपुट
Error at line 2 ORA-20001: Column JOB should have a value. ORA-06512: at "TRIG_EMP_BEF_UPD_INS", line 12 ORA-04088: error during execution of trigger 'TRIG_EMP_BEF_UPD_INS' Script Terminated on line 2.
आप निम्न लिंक से डेमो टेबल डाउनलोड करके अपने स्कीमा में इस ट्रिगर का परीक्षण कर सकते हैं स्कॉट स्कीमा स्क्रिप्ट डाउनलोड करें।
यह भी देखें:
- Oracle प्रक्रिया में वैश्विक अस्थायी तालिकाओं का उपयोग कैसे करें?
- Oracle ट्रिगर WHEN क्लॉज उदाहरण के साथ
- Oracle प्रक्रिया उदाहरण में तालिका प्रकार
-
मानों के एक ही ब्लॉक से संबंधित मानों को अलग किए बिना कई अद्वितीय मान प्राप्त करें
-
एक्सेस में ओडीबीसी लिंक्ड टेबल के लिए थोक INSERTs के प्रदर्शन को कैसे बढ़ाया जाए?
-
Oracle प्रतीक्षा घटनाएँ जो सभी को पता होनी चाहिए
-
@Query . का उपयोग करके स्प्रिंग बूट में फ़ाइल से क्वेरी प्राप्त करें
-
Oracle:'=कोई ()' बनाम 'IN ()'