SYS . के तहत काम करने का कारण यह है कि यह विशेष विशेषाधिकार प्राप्त खाता है। आपको एक नया क्रेडेंशियल बनाने और उसे कार्य के लिए मैप करने की आवश्यकता है
समाधान DBMS_SCHEDULER.CREATE_CREDENTIAL के साथ एक क्रेडेंशियल बनाना होगा OS खाते के साथ, जिसके पास पर्याप्त विशेषाधिकार हैं और इस नए क्रेडेंशियल को आपके कार्य के लिए असाइन करें।
सच कहूं तो ट्रिगर समस्या के बारे में मुझे अभी तक पता नहीं है।
संपादित करें - Oracle की सब-ट्रांज़ेक्शन सुविधा का उपयोग करके समाधान
ओपी अपडेट और टिप्पणियों पर प्रतिक्रिया के बाद:
कार्यप्रवाह के आधार पर मुझे लगता है कि उत्तरदायी . करने के लिए आंतरिक Oracle की अधिसूचना का उपयोग करना बेहतर है अंकेक्षण। मुझे लगता है कि बाहरी एप्लिकेशन के माध्यम से विंडोज़ इवेंट लॉग में स्वयं को हैक करने का प्रयास जटिलता की एक और अनावश्यक परत ला रहा है।
मैं डीबी के भीतर एक टेबल बनाउंगा जहां मैं सभी घटनाओं को स्टोर करूंगा और उस टेबल के शीर्ष पर मैं अधिसूचनाओं (एसएमएस, मेल इत्यादि) के साथ नौकरी तैयार करूंगा जो लॉग टेबल में कोई बदलाव होने पर चलाया जाएगा।
त्रुटि होने पर ट्रिगर का उपयोग करने के लिए आपको <का उपयोग करना चाहिए कोड>PRAGMA स्वायत्त_लेनदेन
आपके मुख्य दायरे से (आपको एक उप-लेनदेन करने की अनुमति देता है)। यह आपको कोई भी DML करने की अनुमति देगा आपके पास हो सकता है, लेकिन बाकी रोलबैक करें।