Чому в Oracle 11gR2 я не можу скинути матеріалізований вигляд у того самого користувача, який його створив?


11

Я створив з користувачем матеріалізований вигляд DI_TEST_AL, назвемо його MY_MVIEW. Він відображається в USER_OBJECTSтаблиці як MATERIALIZED VIEW, я намагаюся його скинути, я отримую повідомлення про успіх, але об’єкт все ще є. Насправді, якщо я спробую її створити заново, я отримую помилку на зразок "об'єкт вже існує".

Я бачу, що є таблиця з такою ж назвою, що належить іншій схемі. Я припускаю, що це не повинно спричинити проблему, але я відчув, що це потрібно згадати.

Ось вихід SQL * Plus:

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?
Джек каже, спробуйте topanswers.xyz

Якщо ви хочете опустити матеріалізований вигляд MY_MVIEW, опустіть його так: ОСТОРОЖУЙТЕ МАТЕРІАЛІЗОВАНИЙ ПОГЛЯД MY_MVIEW. Банкомат, ви кидаєте щось інше, і це може бути критично ...
Керрі Шоттс

1
Я намагаюся скинути MY_MVIEW, я змінив ім'я в прикладі для стислості, але забув цей біт ... Будь-яка ідея, як це налагодити? Чому оракул каже, що він кинутий, але це не так? Ура
базилікод

У вас є договір підтримки? є якісь 10 г помилок, які викликають те, що ви бачите, можливо, вони стильні навколо. Я намагався повторити проти 11gR2, але не зміг. Можливо, надайте повний сценарій із початкової таблиці та MV, який інші можуть спробувати копіювати.
Меттью Уотсон

Спробуйте включити STATUSу вибране ALL_OBJECTS. У мене також є ця проблема, і для мене статус на матеріалізованому погляді є INVALID.
трепет

Відповіді:


10

Підключіться як sysdba і перевірте, чи є в dba_summaries якісь антени для МВ. Якщо запущено,

drop summary <OWNER>.<MV_NAME>;`

Спасибі товаришу, що
заважало

У мене є саме ця проблема, і МВ було зазначено в dba_summaries. Проблема полягає в тому, що коли я намагаюся запустити DROP SUMMARY MY_OWNER.MY_MATERIALIZED_VIEW;, я отримую помилку ORA-00950 ... недійсний варіант DROP .
трепет

@awe спробуйте підключити вашу базу даних як / sysdba. Потім ви можете скористатися командою DROP SUMMARY.
Atilla Ozgur

0

Я зіткнувся з подібною проблемою, коли я спробував відмовитись від матеріалізованого виду, він говорить, що View не існує. Якщо я спробую створити його, він говорить, що Ім'я вже існує. Це помилка в Oracle.

Перед тим, як видалити подання, запит на таблицю all_objects.

SQL: SELECT * FROM ALL_OBJECTS WHERE OBJECT_NAME = 'MY_MVIEW'; Він повинен повернути 2 записи, ojbect_type = ТАБЛИЦЯ та Object_type = МАТЕРІАЛІЗОВАНИЙ ПОГЛЯД

Але якщо в ньому показано лише один запис з Object_type = Таблиця, тоді викиньте цю таблицю з бази даних

Таблиця скидання MY_MVIEW;

І спробуйте знову створити матеріалізований вигляд. Це має працювати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.