Oracle 11gR2 में मैं उसी उपयोगकर्ता के साथ भौतिक दृश्य को क्यों नहीं गिरा सकता जिसने इसे बनाया है?


11

मैंने DI_TEST_ALउपयोगकर्ता के साथ एक भौतिक दृष्टिकोण बनाया , चलो इसे नाम दें MY_MVIEW। यह USER_OBJECTSतालिका में प्रकट होता है MATERIALIZED VIEW, मैं इसे छोड़ने की कोशिश करता हूं, मुझे एक सफलता संदेश मिलता है, लेकिन वस्तु अभी भी है। वास्तव में अगर मैं इसे फिर से बनाने की कोशिश करता हूं तो मुझे एक त्रुटि मिलती है जैसे "ऑब्जेक्ट पहले से मौजूद है"।

मैं देखता हूं कि एक टेबल है जिसमें एक और स्कीमा का नाम है। मैं मानता हूं कि समस्या का कारण नहीं होना चाहिए, लेकिन मुझे ऐसा लगा।

यहाँ SQL * प्लस आउटपुट है:

SQL*Plus: Release 11.2.0.1.0 Production on Mon Aug 1 17:01:50 2011

SQL> select object_name, object_type, owner from all_objects where object_name = 'MY_MVIEW';  
OBJECT_NAME OBJECT_TYPE       OWNER
----------- ----------------- ----------
MY_MVIEW    MATERIALIZED VIEW DI_TEST_AL
MY_MVIEW    TABLE             DIDEV11

SQL> DROP MATERIALIZED VIEW MY_MVIEW;
Materialized view dropped.

SQL> select object_name, object_type, owner from all_objects where object_name = 'MY_MVIEW';
OBJECT_NAME OBJECT_TYPE       OWNER
----------- ----------------- ----------
MY_MVIEW    MATERIALIZED VIEW DI_TEST_AL
MY_MVIEW    TABLE             DIDEV11

SQL> 

मैंने अपनी अनुमति को दोबारा जांचा और उपयोगकर्ता DROP ALL MATERIALIZED VIEWSको प्रदान किया गया DI_TEST_AL


क्या है DO_OPP_SEARCH_MVIEW?
जैक का कहना है कि

यदि आप MY_MVIEW भौतिक दृश्य को छोड़ना चाहते हैं, तो इसे इस तरह से छोड़ें: DROP MATERIALIZED VIEW MY_MVIEW देखें। एटीएम, आप कुछ और छोड़ रहे हैं, और यह महत्वपूर्ण हो सकता है ...
Kerri Shotts

1
मैं MY_MVIEW को छोड़ने का प्रयास कर रहा हूं, मैंने संक्षिप्तता के लिए उदाहरण में नाम बदल दिया है लेकिन मैं उस बिट को भूल गया हूं ... कोई भी विचार यह कैसे डिबग करना है? ओरेकल क्यों कहता है कि यह गिरा है लेकिन यह नहीं है? चीयर्स
तुलसीकोड

क्या आपके पास एक समर्थन अनुबंध है? वहाँ कुछ 10g कीड़े हैं जो आप देख रहे हैं का कारण है, शायद वे चारों ओर stil हैं। मैंने 11gR2 के खिलाफ दोहराने की कोशिश की, लेकिन करने में असमर्थ रहा। शायद प्रारंभिक तालिका और एमवी से एक पूरी स्क्रिप्ट प्रदान करते हैं जिसे अन्य दोहराने की कोशिश कर सकते हैं।
मैथ्यू वाटसन

STATUSचयन में शामिल करने का प्रयास करें ALL_OBJECTS। मेरे पास भी यह समस्या है, और मेरे लिए, भौतिकवादी दृष्टिकोण पर स्थिति है INVALID
खौफ

जवाबों:


10

Sysdba के रूप में कनेक्ट करें और जांचें कि क्या MV के लिए dba_summaries में कोई एंट्री है। अगर वहाँ चलाया जाता है,

drop summary <OWNER>.<MV_NAME>;`

धन्यवाद दोस्त, कि भौतिक रूप से पूरी तरह से हटाए जाने को रोक रहा था ...
basilikode

मुझे यह सटीक समस्या है, और एमवी में सूचीबद्ध किया गया था dba_summaries। समस्या यह है कि जब मैं चलाने की कोशिश करता DROP SUMMARY MY_OWNER.MY_MATERIALIZED_VIEW;हूं, तो मुझे त्रुटि ORA-00950 मिलती है ... अमान्य DROP विकल्प
खौफ

@ अपने डेटाबेस को sysdba के रूप में जोड़ने का प्रयास करें। तब आप DROP SUMMARY कमांड का उपयोग कर सकते हैं।
एटिला ओजगुर

0

मैं इसी तरह के मुद्दे का सामना करना पड़ा जब मैं भौतिक रूप से यह देखने की कोशिश करता हूं कि व्यू मौजूद नहीं है। अगर मैं इसे बनाने की कोशिश करता हूं, तो यह कहता है कि नाम पहले से मौजूद है। यह ओरेकल में एक बग है।

दृश्य छोड़ने से पहले, all_objects तालिका पर क्वेरी करें।

SQL: चयन करें * ALL_OBJECTS से जहां OBJECT_NAME = 'MY_MVIEW'; इसे 2 रिकॉर्ड्स, ojbect_type = TABLE और Object_type = MATERIALIZED VIEW वापस करना चाहिए।

लेकिन अगर इसका केवल Object_type = तालिका के साथ एक ही रिकॉर्ड दिखा रहा है, तो डेटाबेस से उस तालिका को छोड़ दें

ड्रॉप टेबल MY_MVIEW;

और भौतिकवादी दृष्टिकोण को फिर से बनाने की कोशिश करें। यह काम करना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.