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

Oracle में, क्या किसी दृश्य के माध्यम से किसी रिकॉर्ड को सम्मिलित करना या अद्यतन करना संभव है?

Oracle में देखे जाने की संख्या हो सकता है विशिष्ट परिस्थितियों में अद्यतन करने योग्य हो। यह मुश्किल हो सकता है, और आमतौर पर उचित नहीं है।

Oracle 10g SQL संदर्भ से:

अद्यतन करने योग्य दृश्यों पर नोट्स

एक अद्यतन करने योग्य दृश्य वह है जिसका उपयोग आप आधार तालिका पंक्तियों को सम्मिलित करने, अद्यतन करने या हटाने के लिए कर सकते हैं। आप स्वाभाविक रूप से अद्यतन करने योग्य होने के लिए एक दृश्य बना सकते हैं, या आप इसे अद्यतन करने योग्य बनाने के लिए किसी भी दृश्य पर एक INSTEAD OF ट्रिगर बना सकते हैं।

यह जानने के लिए कि क्या और किन तरीकों से एक स्वाभाविक रूप से अद्यतन करने योग्य दृश्य के स्तंभों को संशोधित किया जा सकता है, USER_UPDATABLE_COLUMNS डेटा शब्दकोश दृश्य को क्वेरी करें। इस दृश्य द्वारा प्रदर्शित जानकारी केवल स्वाभाविक रूप से अद्यतन करने योग्य विचारों के लिए सार्थक है। स्वाभाविक रूप से अद्यतन करने योग्य दृश्य के लिए, निम्नलिखित शर्तों को पूरा किया जाना चाहिए:

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

इसके अलावा, यदि किसी स्वाभाविक रूप से अद्यतन करने योग्य दृश्य में छद्म स्तंभ या भाव शामिल हैं, तो आप आधार तालिका पंक्तियों को अद्यतन विवरण के साथ अद्यतन नहीं कर सकते हैं जो इनमें से किसी भी छद्म स्तंभ या भाव को संदर्भित करता है।

अगर आप चाहते हैं कि जॉइन व्यू को अपडेट किया जा सके, तो नीचे दी गई सभी शर्तें सही होनी चाहिए:

  • डीएमएल स्टेटमेंट में शामिल होने के तहत केवल एक टेबल को प्रभावित करना चाहिए।
  • एक INSERT कथन के लिए, दृश्य को CHECK OPTION के साथ नहीं बनाया जाना चाहिए, और सभी कॉलम जिनमें मान डाले गए हैं, एक कुंजी-संरक्षित तालिका से आने चाहिए। एक कुंजी-संरक्षित तालिका वह है जिसके लिए आधार तालिका में प्रत्येक प्राथमिक कुंजी या अद्वितीय कुंजी मान भी शामिल होने के दृश्य में अद्वितीय है।
  • एक अद्यतन विवरण के लिए, अद्यतन किए गए सभी स्तंभों को एक कुंजी-संरक्षित तालिका से निकाला जाना चाहिए। यदि दृश्य CHECK OPTION के साथ बनाया गया था, तो उन तालिकाओं से लिए गए स्तंभों और स्तंभों में शामिल हों जिन्हें दृश्य में एक से अधिक बार संदर्भित किया गया है, उन्हें अद्यतन से परिरक्षित किया जाना चाहिए।
  • एक DELETE स्टेटमेंट के लिए, यदि जॉइन एक से अधिक कुंजी-संरक्षित तालिका में परिणाम देता है, तो Oracle डेटाबेस FROM क्लॉज में नामित पहली तालिका से हटा देता है, चाहे दृश्य CHECK विकल्प के साथ बनाया गया हो या नहीं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. v$ दृश्यों तक पहुंच कैसे प्रदान करें (v$session ,v$instance)

  2. dbms_lob.getlength() बनाम लंबाई() ओरेकल में बूँद आकार खोजने के लिए

  3. Oracle में टाइमस्टैम्प कैसे डालें?

  4. घंटे और मिनट में परिणाम प्राप्त करने के लिए ऑरैकल में 2 तिथियां कैसे घटाएं?

  5. वीएस इकाई ढांचे में ओरेकल इकाई कोड में प्राथमिक कुंजी अपडेट नहीं करती है