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

मैं SYS के स्वामित्व वाली वस्तुओं पर ट्रिगर क्यों नहीं बना सकता?

आपको कोई नहीं बनाना चाहिए SYS स्कीमा में ऑब्जेक्ट। वह उपयोगकर्ता Oracle डेटाबेस प्रबंधन प्रणाली का हिस्सा है, और इसके स्कीमा को बदलने से आपके डेटाबेस के टूटने की संभावना है। निश्चित रूप से यह आपके Oracle समर्थन अनुबंध (यदि आपके पास है) को अमान्य कर सकता है। दस्तावेज़ीकरण से:

<ब्लॉकक्वॉट>

"प्रशासनिक खाता SYS स्वचालित रूप से बनाया जाता है जब डेटाबेस बनाया जाता है। यह खाता सभी डेटाबेस प्रशासनिक कार्य कर सकता है। SYS स्कीमा डेटा डिक्शनरी के लिए आधार तालिकाओं और विचारों को संग्रहीत करता है। ये आधार तालिकाएं और दृश्य Oracle डेटाबेस के संचालन के लिए महत्वपूर्ण हैं। में तालिकाएँ SYSschema को केवल डेटाबेस द्वारा हेरफेर किया जाता है और इसे किसी भी उपयोगकर्ता द्वारा संशोधित नहीं किया जाना चाहिए।"

ओह, यदि आप सोच रहे हैं, तो यही बात सिस्टम पर भी लागू होती है।

ट्रिगर विशेष रूप से दुरुपयोग के लिए प्रवण होते हैं और स्केलिंग समस्याओं का एक प्रमुख स्रोत होते हैं। इसलिए Oracle हमें SYS में ट्रिगर बनाने से मना करता है, क्योंकि ऐसा करने से डेटा डिक्शनरी का प्रदर्शन दूषित हो सकता है या कम से कम प्रभावित हो सकता है।

बेशक यहाँ ऐसा नहीं हो रहा है। आपने SYS में अपनी खुद की टेबल बनाई है। अच्छा उन्हें गिरा दो। अभी। अपना स्वयं का उपयोगकर्ता, ग़ज़ल या जो भी नाम उपयुक्त हो, बनाने के लिए SYS का उपयोग करें, और इसे आवश्यक विशेषाधिकार प्रदान करें:सत्र बनाएं, तालिका बनाएं, ट्रिगर बनाएं, और बहुत कुछ। फिर अपनी टेबल और अन्य स्कीमा ऑब्जेक्ट बनाने के लिए उस नए उपयोगकर्ता के रूप में कनेक्ट करें।




  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. तिथि से युग-ओरेकल में कनवर्ट करें

  3. dbms_output.put_line

  4. स्पष्ट जॉइन बनाम इम्प्लिक्ट जॉइन?

  5. Oracle सेट ऑपरेटर्स