2012-01-11 13 views
7

बहुत नया करने के लिए ओरेकल से चलाता हूँ। मान लीजिए कि मेरे पास टेबल एएमपी में एक डालने पर ट्रिगर है। ट्रिगर को निकालकर डाले गए रिकॉर्ड को क्या पता चलाना है इसका पता लगाने का कोई तरीका है। मैं ट्रिगर चाहता था कि कोड हो जो कुछ ऐसा करता है यदि सम्मिलित रिकॉर्ड एक विशेष मूल्य था।मूल्य कि Oracle ट्रिगर निकाल दिया हो रही

उत्तर

10

मान लें कि आप एक पंक्ति-स्तर ट्रिगर होता है, तो आप बस :NEW छद्म रिकॉर्ड

CREATE TRIGGER name_of_trigger 
    BEFORE INSERT ON emp 
    FOR EACH ROW 
DECLARE 
    <<declare variables>> 
BEGIN 
    IF(:new.ename = 'JUSTIN') 
    THEN 
    <<do something if the newly inserted ENAME value is 'JUSTIN'>> 
    END IF; 
END; 

उपयोग कर सकते हैं एक DDL ट्रिगर के लिए, दृष्टिकोण पूरी तरह से अलग है। उस मामले में, pseudofunctions ora_dict_obj_owner और ora_dict_obj_name मालिक और तालिका DDL बयान पर काम कर रहा है के नाम वापस आ जाएगी।

+0

अरे @Justin गुफा खेद है कि आपको परेशान करने के लिए, लेकिन मैंने महसूस किया कि मैं वास्तव में एक DDL या प्रणाली को ट्रिगर और नहीं कोई DML ट्रिगर की जरूरत है। मैं एक ट्रिगर हर एक नई तालिका स्कीमा में बनाया जाता है कहेंगे 'बना सकते हैं या REPLACE TRIGGER drop_trigger बाद hr.SCHEMA पर आपके द्वारा बनाई अंत शुरू;' मुझे लगता है कि अब ट्रिगर निकाल दिया बनाई गई तालिका का नाम कैसे मिलेगा? क्या यह अभी भी नया है? – Eosphorus

+0

@Eosphorus - नहीं, DDL चलाता बहुत अलग जानवर हैं। मेरा जवाब अपडेट किया गया। –

+0

बहुत जस्टिन धन्यवाद। यह काफी बार है जब आपने मुझे अभी मदद की है। मैं वास्तव में इसकी प्रशंसा करता हूँ :) – Eosphorus

संबंधित मुद्दे